【发布时间】:2013-01-06 23:33:18
【问题描述】:
我有一个 Web 应用程序,它使用 Codeigniter-php 代码向服务器发出 Ajax 请求。 Ajax 请求在本地服务器中正常工作,但在应用程序托管在远程服务器中时无法正常工作。 控制台错误是:
XMLHttpRequest cannot load http://localhost/CI-example/index.php/control/controlHome. Origin http://www.page.com is not allowed by Access-Control-Allow-Origin.
令人惊讶的是,请求是在服务器中发出的,而不是响应中的。
我用于 Ajax 请求的 URL 是:
AJAX_URL = "http://localhost/CI-example/site/index.php/control/controlHome";
但是,我也尝试过:
AJAX_URL = "http://www.page.com/CI-example/site/index.php/control/controlHome";
并捕获下一个错误:
POST http://www.page.com/webdom/site/index.php/control/controlHome 500 (Internal Server Error)
我该怎么办?
编辑: www.page.com 是一个子域。子域用于ajax请求时需要做一些配置吗?
文件夹组织是:
/CI-example
---/application/controllers/control.php
---/system
---/site/js/ajaxRequest.js
【问题讨论】:
-
你试过
AJAX_URL = "/CI-example/site/index.php/control/controlHome"吗?您不需要包含主机名,因为 AJAX 仅对内部请求有效。 -
您是否有可能获得重定向?尝试在单独的选项卡中调用 URL,并查看开发人员工具的网络选项卡。
-
@AustinMullins,我试过了,错误是最后一个问题
-
@Thomas。我认为没有重定向
-
@vicenrele,查看大图的回答:stackoverflow.com/questions/2558977/ajax-cross-domain-call
标签: javascript php jquery ajax codeigniter