首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >跨域POST请求,不使用任何框架

跨域POST请求,不使用任何框架
EN

Stack Overflow用户
提问于 2012-06-20 17:15:15
回答 3查看 1.7K关注 0票数 0

我想在js中使用脚本hackup发出跨域请求,而不使用任何框架,例如jquery。我想将json发布到跨域服务,并使用回调检索结果。在纯javascript中是可能的吗?

EN

回答 3

Stack Overflow用户

发布于 2012-06-20 17:18:51

框架可以做到这一点,所以你可以做到。别人写的代码不能做你写的代码不能做的事情(只要你愿意学习所有需要的东西)。

如果您想向不同的源发出post请求(假设您没有通过自己的服务器代理请求),则必须使用CORS (但请注意browser support )。

(对于“普通JavaScript”的某些值,您需要由浏览器提供的API,而这些API不是核心语言的一部分。)

票数 0
EN

Stack Overflow用户

发布于 2012-06-20 17:26:11

你可以使用类似这样的东西。

代码语言:javascript
复制
var url = "http://sitename.com";
var params = "params1=value&params2=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);
票数 0
EN

Stack Overflow用户

发布于 2012-06-21 03:01:40

我今天一直在研究同样的问题,我遇到了一些关于CORS的很好的教程。

http://www.html5rocks.com/en/tutorials/cors/

http://websitez.com/javascript-cross-domain-post-get/

基本上,当javascript要发送一个XMLHttpRequest请求时(我们假设这个例子是POST ),跨域首先发送一个OPTIONS请求,其中包含它想要在POST请求中发送的方法和头部。远程域应该使用适当的头进行响应,告诉您的客户端它将接受您的请求。这被称为“印前检查”请求。请记住,需要在POST请求中返回相同的响应头,否则您将获得200响应代码,但您的代码会将其视为错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11116332

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档