gpt4 book ai didi

javascript - cherrypy/jquery CORS 问题

转载 作者:行者123 更新时间:2023-11-28 18:46:15 24 4
gpt4 key购买 nike

我有一个基于 cherrypy 的简单 python 网络服务器。其资源应提供 API。服务端有如下代码提供CORS:

def CORS():
cherrypy.response.headers["Access-Control-Allow-Origin"] = "*"

if __name__ == "__main__":
cherrypy.tools.CORS = cherrypy.Tool('before_finalize', CORS)
cherrypy.quickstart(PyCachedAdmin(), config={'/': {'request.dispatch': cherrypy.dispatch.MethodDispatcher()}})

服务器在 localhost:8080 上运行。现在我有一个 HTML 文件,在加载 jquery 1.9 的本地主机(默认端口 80)上可用。我打开浏览器控制台尝试使用 $.ajax 对 cherrypy 服务器执行任何 AJAX 请求。我一直在尝试:

$.ajax({
url:'http://localhost:8080/',
type: "POST",
dataType: "json",
data: {command:"version"}
}).done(function(){
console.log('hej');
});

$.ajax({
url:'http://localhost:8080/',
type: "POST",
crossDomain: true,
dataType: "jsonp",
data: {command:"version"}
}).done(function(){
console.log('hej');
});

$.support.cors = true

但没有任何效果。我得到的是 XMLHttpRequest cannot load http://localhost:8080/。 Access-Control-Allow-Origin 不允许来源 http://localhost。GET http://localhost:8080/?callback=jQuery19102827550224028528_1382823727186&command=version&_=1382823727187 404(未找到) 使用 jsonp 时(神秘的是它发送 GET 而不是 POST)。周围有几个类似的问题,我试过了,这些是我的结果(还是有问题)。

PS 服务器完全正常,因为所有 curl 测试都通过了。跨域的东西出了点问题。

最佳答案

您是否正在激活 CORS 工具?您可以通过装饰调用方法或在配置中设置它来使用该工具。

鉴于 PyCachedAdmin 的实现没有在问题上表达,我可能猜想您可能没有启用该工具,为此您只需要更改配置字典并制作类似这样的东西:

    cherrypy.quickstart(PyCachedAdmin(),
config={
'/': {
'request.dispatch':
cherrypy.dispatch.MethodDispatcher(),
'tools.CORS.on': True}})

或者,如果您在 PyCacheAdmin 上使用的方法已经被装饰或使用 _cp_config 则不需要额外的配置,并且此答案对您没有帮助。

关于javascript - cherrypy/jquery CORS 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19612319/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com