Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 不跨域。XMLHttpRequest无法加载localhost:portNo1。源本地主机:访问控制不允许portNo2允许源_Javascript_Python_Jquery - Fatal编程技术网

Javascript 不跨域。XMLHttpRequest无法加载localhost:portNo1。源本地主机:访问控制不允许portNo2允许源

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

我在本地主机portNo1上用Python从BaseHTTPServer.HTTPServer创建了一个服务器

客户端位于localhost:portNo2,在客户端,我发出一个jQuery$.ajax POST请求,如下所示:

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服务器将这两个正在运行的应用程序反向代理到相同的域和端口