不跨域.XMLHttpRequest无法加载localhost:portNo1.源localhost:portNo2不被
Not cross-domain. XMLHttpRequest cannot load localhost:portNo1 . Origin localhost:portNo2 is not allowed by Access-Control-Allow-Origin
我在localhost:portNo1 上用Python从BaseHTTPServer.HTTPServer创建了一个服务器
客户端位于localhost:portNo2,在客户端,我正在发出一个jQuery$.ajaxPOST请求,如下所示:
var request = $.ajax({
url: "http://localhost:portNo1",
type: "post",
dataType: 'json',
data: json_data
});
在服务器端,服务器从客户端获取数据并用其数据进行回复。
def do_POST(self):
# Get client data
length = int(self.headers.getheader('content-length'))
data_string = self.rfile.read(length)
print data_string;
# Create response object
jsonObjStr = json.dumps(jsonObj);
self.send_response(200)
self.end_headers()
self.wfile.write(jsonObjStr);
发生的情况是,服务器正在获取我发送的数据,但没有回复客户端,并且在客户端执行$.ajax对象失败事件时的回调(错误消息)。我调试并验证了jsonObj没有任何问题。但我看不到self.file对象里面有什么。
在JS控制台上,我也收到了以下错误(它显示在Google Chrome的JS控制台上而不显示在Firefox JS控制台上):
XMLHttpRequest cannot load localhost:portNo1 . Origin localhost:portNo2 is not allowed by Access-Control-Allow-Origin. client.html:1
Google Chrome的JS控制台指向html文件,但这对我来说也没有意义。
我查看了网站,似乎错误通常是由跨域请求引起的。但是,我正在从一个本地主机端口到另一个端口进行通信。
这就是问题所在。跨源限制不允许在不发送Access-Control-Allow-Origin: *
标头的情况下跨端口通信。
更好的解决方案是使用Nginx或其他Web服务器将这两个正在运行的应用程序反向代理到同一域和端口
相关文章:
- PHP中的setcookie仅适用于localhost
- 在localhost Dev Box上测试JSONP请求的最佳方式
- AJAX简单错误.XMLHttpRequest无法加载http://localhost/mpl/getPage.php.
- @Url.Content(“~”)不适用于localhost
- 向localhost发出带有grunt的代理CORS请求
- url正则表达式不适用于javascript中的localhost
- 使用fs.readdir在vps上返回ENOENT,但在localhost上不返回
- 在此服务器上找不到请求的-表单验证(位于localhost端口80的Apache/2.4.9(Win32)PHP/5.5
- 岗位http://localhost:3000/api/signup400(错误请求)
- 在localhost/intranet上嵌入DOC、PPT、XLS、PDF文件
- MySql数据库INSERT操作在硬盘(localhost)上有效,但在Internet上托管时无效
- 如何在localhost上加载css和引导程序文件
- http(localhost或remote)提供的文件是否可以从通过file://protocol打开的本地文件访问?反
- 角度:原点http://localhost在Access Control Allow Origin标头中找不到
- Javascript setInterval在localhost上工作,但确实'Don’我不在现场工作
- windows 8 wcf web service (localhost/intranet)
- 如何在node.js的帮助下使用网站在localhost上工作
- D3图表在jsfiddle上运行良好,但在localhost上则不然
- 否'访问控制允许来源'标头存在于请求的资源上.起源'http://localhost:8100&
- 不跨域.XMLHttpRequest无法加载localhost:portNo1.源localhost:portNo2不被