我试图实现这一点,当我调用JS函数时,发送一个post请求。在我的浏览器中,我会发送:
df['column'].replace('None', np.nan, inplace=True)
这很有效。然而在我的代码中它并没有。
重要提示: - Chrome确实引发错误:请求未通过访问控制。如果我在Chrome中禁用此功能,则我不会显示此错误(但服务器也没有响应)。
http://myuser:password@hc2:80/api/callAction?deviceID=185&name=turnOn
答案 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¶m2=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)