Javascript 不跨域。XMLHttpRequest无法加载localhost:portNo1。源本地主机:访问控制不允许portNo2允许源
我在本地主机portNo1上用Python从BaseHTTPServer.HTTPServer创建了一个服务器 客户端位于localhost:portNo2,在客户端,我发出一个jQuery$.ajax POST请求,如下所示:Javascript 不跨域。XMLHttpRequest无法加载localhost:portNo1。源本地主机:访问控制不允许portNo2允许源,javascript,python,jquery,Javascript,Python,Jquery,我在本地主机portNo1上用Python从BaseHTTPServer.HTTPServer创建了一个服务器 客户端位于localhost:portNo2,在客户端,我发出一个jQuery$.ajax POST请求,如下所示: var request = $.ajax({ url: "http://localhost:portNo1", type: "post", dataType: 'json', data: json_data
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.wfile对象中的内容
在JS控制台上,我还收到了以下错误(它显示在Google Chrome的JS控制台上,而在Firefox JS控制台上没有显示):
XMLHttpRequest无法加载localhost:portNo1。源本地主机:访问控制不允许portNo2允许源。client.html:1
Google Chrome上的JS控制台指向html文件,但这对我来说也没有意义
我查看了网站,似乎错误通常是由于跨域请求引起的。但是,我正在从一个本地主机端口到另一个本地主机端口进行通信。这就是问题所在。跨源限制不允许您在不发送
Access Control allow origin:
标题的情况下跨端口通信
更好的解决方案是使用Nginx或其他一些web服务器将这两个正在运行的应用程序反向代理到相同的域和端口。这就是问题所在。跨源限制不允许您在不发送
Access Control allow origin:
标题的情况下跨端口通信
更好的解决方案是使用Nginx或其他一些web服务器将这两个正在运行的应用程序反向代理到相同的域和端口