本地环境中的跨域ajax测试

Posted

技术标签:

【中文标题】本地环境中的跨域ajax测试【英文标题】:cross domain ajax testing in local environment 【发布时间】:2013-05-23 14:28:20 【问题描述】:

在本地开发环境(http://localhost.mydev.com:8081/xapp/x.htm)中,我需要进行 ajax 调用以打开 URL http://hd-ad01.mydev.com:8081/yapp)并在fancybox 中绘制响应。 由于我在本地开发环境中,它变成了一个跨域。但是当它被部署到服务器时,它不会。 有人可以建议我,如何使用提琴手或其他工具在本地测试我的 Ajax 调用? 我尝试使用提琴手并修改响应头以添加 oSession.oResponse.headers.Add("Access-Control-Allow-Origin", "*"); 我按照博客http://blog.caplin.com/2010/03/19/using-fiddler-to-help-develop-cross-domain-capable-javascript-web-applications/ 中的完整步骤进行操作 它对我没有用。有人可以提出解决方案吗?

【问题讨论】:

你的意思是没有工作,错误是什么?。您可以在 hd-ad01 服务器上设置该 Http 标头并从本地环境连接到它吗? 我可以在响应头上设置 Access-Cotntrol-Allow-Origin。但是我没有收到来自服务器的任何响应。根本没有错误。从萤火虫我看到呼叫的响应代码是 200 OK。但它根本没有响应选项卡。 您需要使用getpostman.com 之类的东西来测试服务端,除非他们启用了 CORS,否则您将无法访问该 url。 【参考方案1】:

这是因为fancybox jquery插件设置了请求头 Access-Control-Request-Header as x-fancyBox

尽管我在响应标头中将 Access-Control-Allow-Origin 设置为 *,但此参数使我的跨域调用失败。

我已经在 fancybox 2.1.4 源代码中注释了标头的默认值并尝试了相同的方法,我能够进行跨域 ajax 调用

阿贾克斯: 数据类型:'html', //标题:'X-fancyBox': true

谁能告诉我如何以编程方式修改标头值? 我尝试了以下方法,但对我来说没有成功

数据类型:'html', 标题: 'X-fancyBox': false

数据类型:'html', 标题:

【讨论】:

以上是关于本地环境中的跨域ajax测试的主要内容,如果未能解决你的问题,请参考以下文章

wamp解决ajax跨域问题

解决本地调试导致的Ajax跨域问题

nodejs 代理 解决开发环境跨域问题

跨域处理实践

Vue-cli proxyTable解决开发环境的跨域问题

分布式环境Ajax的跨域请求