DOJO AJAX请求选项

2024-10-04 09:17:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我通过CherryPy(pythonweb框架)公开了一个简单的restfuljson url。我有第二个应用程序(使用Pylons),它需要访问CherryPy公开的URL。两者都通过本地主机提供服务。当直接使用浏览器时,这两个url都能很好地解析。在

但是,当从初始Pylons请求运行的DOJO脚本从CherryPy调用JSON url时,它将失败。我在Firefox中打开LiveHeaders,发现DOJO首先发送了一个HTTP“OPTIONS”请求。CherryPy用405,Not Allowed方法拒绝OPTIONS请求,并且它全部停止。在

如果我把这个页面放到CherryPy应用程序中,一切都很好。在

在我的localhost dev平台上解决这个问题的最佳方法是什么。。。。这会发生在Prod吗?在


Tags: 方法脚本框架json应用程序url浏览器firefox
2条回答

在另一个站点上,我发现您需要重写xhrArgs的头来防止这个问题。我引用那个论坛的话:

It looks like by default dojo adds an 'X-Requested-With' argument to the Access-Control-Request-Header property, which typically causes servers to reject the request because it causes cross-site XHR requests to force preflight requests.

原始解is here。在

我猜你是通过两个不同的端口在本地为这两个应用提供服务,这使得dojo尝试执行跨域XHR调用。在

您需要能够从同一个URL(协议、主机名和端口)提供JSON URL,才能成功地进行XHR调用。我通过在本地使用nginx来实现这一点,并将其配置为通过将它们转发到CouchDB来服务来自Dojo应用程序的数据库请求。在

相关问题 更多 >