【发布时间】:2011-08-19 23:23:22
【问题描述】:
我正在开发一个 jQuery 插件,它将成为一些 REST API 的连接器。 实施是直截了当的,但同源政策绝对是痛苦的。 我主要需要执行 POST 请求。
我也试过实现OPTIONS方法并返回(是python,但意思应该清楚)
def options(self):
self.response.headers['Access-Control-Allow-Origin'] = self.request.host_url
self.response.headers['Access-Control-Allow-Methods'] = 'POST, GET, OPTIONS'
self.response.headers['Access-Control-Allow-Headers'] = 'x-requested-with'
self.response.headers['Access-Control-Max-Age'] = '1728000'
还是不行……有什么办法吗?
PS:我看到有其他类似主题的问题,但我需要一个针对 POST 方法的特定解决方案(使用 iframe 可以轻松实现 GET)
Javascript 示例:
$.ajax({
url: options.protocol+'://'+options.host+':'+options.port+'/'+method,
data: rawData,
async:false,
dataType: "json",
type:"POST",
success:function(data)
{
alert('asd');
result.data = data;
alert(data);
},
error:function(lol){
alert('omggg !!!!'+lol);
}
});
编辑:添加 javascript 代码示例
【问题讨论】:
-
你需要支持的浏览器是否支持跨域header?
-
您是否仅尝试使用
Access-Control-Allow-Origin并将其设置为*?这一直对我有用。 -
好吧,我刚刚发现一篇文章解释了这些标题的作用。对于测试,我使用的是 firefox,实际上我得到了返回正文(thx httpfox),但我无法获得名为(jQuery.ajax)的成功方法
标签: jquery http-post cross-domain-policy