javascript - 奇怪的 JQuery 错误 "code 501, message Unsupported method OPTIONS"

标签 javascript jquery python http httpserver

我正在学习 JQuery Get 方法。我启动了一个 Python HTTP 服务器:

(只需输入命令“Python -m SimpleHTTPServer”)。

只需在我的网络浏览器上访问“http://localhost:80”即可测试此网络服务器。但是,当我编写这个非常简单的 javascript 来访问我的网络服务器时。我收到一条错误消息:

“代码 501,消息不支持的方法('OPTIONS')”

我使用假设跨域请求 JQuery 的 jquery.xdomainajax.js 库。

这是我的javascript代码:

<html>
<head>
<script src="jquery.min.js"></script>
<script src="jquery.xdomainajax.js"></script>
<script type="text/javascript">
$(document).ready(function(){ 
  u = 'http://localhost:80';
 jQuery.get(u, function(res){       
    $("#data").html(res.responseText)
});
});


</script>
</head>
<body>
<p id="data"></p>
</body>
</html>

实际上,如果我将 u 更改为任何其他 url,例如“http://www.google.ca”。它工作得很好。但我不知道为什么它不适用于基本的 Python HTTP 服务器。谁能帮帮我?

最佳答案

我所做的是编写一个自定义的HTTPRequestHandler。我在 MyHandler 中添加了一个 do-OPTIONS 方法来告诉浏览器我的服务器支持 CORS。这是通过发送 header Access-Control-Allow-Origin、Access-Control-Allow-Methods 和 Access-Control-Allow-Headers 来完成的。此外,我在 do_GET 方法中添加了“self.send_header('Access-Control-Allow-Origin', '*')”语句。

class MyHandler(BaseHTTPRequestHandler):
    def do_OPTIONS(self):           
        self.send_response(200, "ok")       
        self.send_header('Access-Control-Allow-Origin', '*')                
        self.send_header('Access-Control-Allow-Methods', 'GET, POST, OPTIONS')
        self.send_header("Access-Control-Allow-Headers", "X-Requested-With")        
        self.end_headers()
    
    def do_GET(self):           
        self.send_response(200)
        self.send_header('Access-Control-Allow-Origin', '*')
        self.send_header('Content-type',    'text/html')                                    
        self.end_headers()              
        self.wfile.write("<html><body>Hello world!</body></html>")
        self.connection.shutdown(1) 

关于javascript - 奇怪的 JQuery 错误 "code 501, message Unsupported method OPTIONS",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8470414/

相关文章:

javascript - 在Javascript中将字符串中的奇数和偶数索引字符转换为大写/小写?

javascript - 使用 waypoints.js 和 Anime.js 分别对具有相同类的元素进行动画处理

Javascript 对象的属性已定义,但当我尝试使用它时返回未定义

python - Flask网页找不到图片文件

Javascript - 两个相同的函数,但只有一个有效

javascript - 如何创建嵌套的商店管道?

javascript - 将类添加到 float 框弹出窗口,单击打开弹出窗口

jquery - 单击时以模态显示来自图像 slider 的图像

Caffe的Python接口(interface) : Error in "import caffe"

python - 在执行期间将后台命令输出 (stdout) 写入文件