我正试图让一篇跨域的帖子发挥作用。我知道我可以很容易地将jsonp用于GET,但我一直纠结于如何实现POST请求。
我已经查找了easyXDM,但据我所知,服务器还需要某种easyXDM实现,以"cors"文件或其他形式。
这是真的吗?因此,如果服务器不支持它,就无法进行跨域发布(无需设置代理,即)
我自己也试过只使用本地文件:
<script type="text/javascript">
var xhr = new easyXDM.Rpc(/** The channel configuration*/{
remote: "name.html"
}, {
remote: {
request: {} // request is exposed by /cors/
}
});
</script>
然后做一个这样的请求:
xhr.request({
url: "http://other.domain.be",
method: "POST",
data: {NEWS: "true", IMMO: "true" }
}, function(response) {
alert(response.status);
alert(response.data);
});
但这无济于事。
是的,easyXDM.Rpc需要使用服务器cors-url进行初始化。
xhr = new easyXDM.Rpc({remote: "http://url/cors"}, {remote:{request:{}}});
如果您不想使用easyXDM,您可以通过添加以下内容轻松设置服务器以接受所有请求:(IE<8不支持)
Header set Access-Control-Allow-Origin *
Header add Access-Control-Allow-Headers X-Requested-With
Header add Access-Control-Allow-Headers X-Request