繁体   English   中英

从CURL到AJAX XMLHttp

[英]From CURL to AJAX XMLHttp

由于平台限制,我正在尝试将curl代码从称为TextRazor的API转换为AJAX XMLHttp。 我已经尝试了社区中类似问题的许多解决方案,但似乎无法获取任何数据,或者只能获取“ 400:Bad Request”。 如果重要的话,从调用该API的文档中可以看到:

curl -X POST \
-H "x-textrazor-key: YOUR_API_KEY" \
-d "extractors=entities,entailments" \
-d "text=Spain's stricken Bankia expects to sell off..." \
https://api.textrazor.com/

我当前的AJAX XMLHttp代码如下所示:

var xhttp = new XMLHttpRequest();
var url = "https://api.textrazor.com/";
var params = "extractors=entities&text=Spain's stricken Bankia expects to sell...";
xhttp.open("POST", url, true);

xhttp.setRequestHeader("x-textrazor-key", "YOUR_API_KEY");
xhttp.setRequestHeader("Content-length", params.length);

xhttp.onreadystatechange = function() {
if(xhttp.readyState == 4 && xhttp.status == 200) {
    alert(xhttp.responseText);
}
}

xhttp.send(params);

谢谢你的支持!

您正在使用相同的原始策略

由于您是在进行跨域请求并添加自定义标头,因此浏览器在发出请求前先发出预检OPTIONS请求

您向其发送请求的服务器不准备响应OPTIONS请求,因此它向您抛出400。

要解决此问题:

  • 他们应该支持CORS
  • 他们应该提供获取JSONP等数据的替代方法(不建议使用,现在有CORS)
  • 您不应从浏览器直接向其服务器发出请求

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM