我想在js中使用脚本hackup进行跨域请求,而不使用任何框架,如jquery。我想将json发布到跨域服务并使用回调检索结果。是否可以在普通的javascript中使用?
答案 0 :(得分:0)
框架可以做到,所以你可以这样做。其他人编写的代码不能做你写的代码所不能做的事情(只要你愿意学习所需的一切)。
如果您想向其他来源发布帖子请求(假设您没有通过自己的服务器代理请求),则必须使用CORS(但请注意browser support。
(无论如何,对于“普通JavaScript”的某些值,您需要由不属于核心语言的浏览器提供的API。)
答案 1 :(得分:0)
你可以使用这样的东西。
var url = "http://sitename.com";
var params = "params1=value¶ms2=value2";
var httpc = new XMLHttpRequest();
httpc.open("POST", url, true);
httpc.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
httpc.onreadystatechange = function() {
if(httpc.readyState == 4 && httpc.status == 200) {
var responseType = httpc.getAllResponseHeaders();
if(responseType.indexOf("application/json") != -1) {
alert(httpc.responseText);
}
}
}
httpc.send(params);
答案 2 :(得分:0)
我今天一直在研究同样的问题,我遇到过一些关于CORS的精彩教程。
http://www.html5rocks.com/en/tutorials/cors/
http://websitez.com/javascript-cross-domain-post-get/
基本上,当javascript即将发送XMLHttpRequest请求时(我们假设此示例为POST),跨域首先发送一个OPTIONS请求,其中包含要在POST请求中发送的方法和标头。远程域应使用适当的标头响应告诉您的客户它将接受您的请求。这称为“预检”请求。请记住,在POST请求中需要返回相同的响应标头,否则您将获得200响应代码,但您的代码会将其视为错误。