Javascript序列化POST

时间:2017-12-07 20:22:03

标签: javascript post

我试图实现这一点,当我调用JS函数时,发送一个post请求。在我的浏览器中,我会发送:

df['column'].replace('None', np.nan, inplace=True)

这很有效。然而在我的代码中它并没有。

重要提示: - Chrome确实引发错误:请求未通过访问控制。如果我在Chrome中禁用此功能,则我不会显示此错误(但服务器也没有响应)。

http://myuser:password@hc2:80/api/callAction?deviceID=185&name=turnOn

2 个答案:

答案 0 :(得分:1)

相当于将网址放在浏览器的位置是GET请求,而不是POST

由于您正在发送跨域请求,因此您将无法读取响应(除非您通过源服务器上的代理进行中继)。所以你不能阅读http.responseText,可以简单地省略onreadystatechange函数;你只需要假设它

function changestate() {
    var http = new XMLHttpRequest();
    http.withCredentials = true;
    var user = "bassie"
    var pass = "password"
    var url = "http://hc2/api/callAction";
    var params = "deviceID=185&name=turnOff";
    http.open("GET", url + "?" + params, true);
    http.setRequestHeader("Authorization", "Basic " + user + ":" + pass);
    http.send();
}

答案 1 :(得分:0)

最终创建了一种类似代理的东西。这是主要组成部分。不在示例中(我的脚本获取HTTP请求)并获取输出。低于它的要点:

   req = urllib.request.Request('http://hc2:80/api/callAction?param1=1&param2=2')
   credentials = ('%s:%s' % ('user', 'password'))
   encoded_credentials = base64.b64encode(credentials.encode('ascii'))
   req.add_header('Authorization', 'Basic %s' % 
   encoded_credentials.decode("ascii"))
   response = urllib.request.urlopen(req)