Javascript 使用jQuery的跨域请求(使用Python)
这段Python代码运行良好Javascript 使用jQuery的跨域请求(使用Python),javascript,jquery,python,ajax,json,Javascript,Jquery,Python,Ajax,Json,这段Python代码运行良好 print 'foo' params = {'memberId': '1'} data = urllib.urlencode(params) url = 'http://aaa.bbb.com/ccc/' req = urllib2.Request(url, data, {'Content-Type': 'application/json'}) f = urllib2.urlopen(req) response = f.read() print '===>'
print 'foo'
params = {'memberId': '1'}
data = urllib.urlencode(params)
url = 'http://aaa.bbb.com/ccc/'
req = urllib2.Request(url, data, {'Content-Type': 'application/json'})
f = urllib2.urlopen(req)
response = f.read()
print '===>', response
response = eval(response.decode('unicode-escape'))
f.close()
我想知道这个对应的javascript代码是什么?我试过了,警告“错误”。目前我在ddd.bbb.com上。该web服务位于aaa.bbb.com上。我无法为此设置相对路径
请就如何配置跨域提供建议。谢谢
jQuery.ajax({
url: 'http://aaa.bbb.com/ccc',
type: 'GET',
contentType: "application/json",
dataType: "json",
data: {'memberId':'1'},
success: function (data) {
alert("ok");
},
error: function () {
alert("error");
}
});
关于Javascript的“同源策略”以及如何解决它,还有大约一个gajillion(这是我的技术估计;-)的其他堆栈溢出问题。我强烈建议你去看看 作为快速总结,您的基本选项包括:
希望这能澄清一些问题。设置相对于脚本路径的url,而不是域的完整位置。您正在浏览器中运行后一个url。同源策略是一种浏览器端保护(考虑到不存在任何跨域配置,我认为可能是这种情况),您的内容类型是json,但您不发送json。@musa-无论您发送什么,因为它都将转换为查询字符串,不管您接收到什么都很重要。正如Alexander所说,常规JSON请求通常不受跨浏览器支持(没有CORS等),与Python相比根本不相关。我搜索了很多结果,尝试了一些,但没有一个有效。请张贴一个可能的解决方案(或链接),你认为可能会解决这个问题?是我能找到的最高评分的。我还改进了我的“快速总结”,为您提供了选项的基本概述。最后一点:上面的python代码本质上是一个代理;如果你想在你的网站上使用该脚本(例如:在
ddd.bbb.com/proxytoaa
),那么你可以在不违反浏览器规则的情况下访问aaa的内容(因为就浏览器所见,你不是从aaa获得它,而是从ddd获得它)。