【发布时间】:2012-11-30 23:54:52
【问题描述】:
这段 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 '===>', 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");
}
});
【问题讨论】:
-
设置相对于脚本路径的url,而不是域的完整位置。
-
您正在浏览器中运行后者。同源策略是一种浏览器端保护(考虑到没有任何跨域配置,我认为很可能是这种情况)
-
您的内容类型是 json,但您没有发送 json。
-
@musa - 你发送什么并不重要,因为无论如何它都会转换为查询字符串,重要的是你收到什么。正如 Alexander 所说,跨浏览器通常不支持常规 JSON 请求(没有 CORS 等),并且与 Python 相比根本不相关。
-
添加到@Alexander 的评论中:developer.mozilla.org/en-US/docs/…
标签: javascript jquery python ajax json