Ajax调用不起作用-允许跨源域不适用于axios吗?

时间:2018-07-18 17:17:12

标签: ajax codeigniter vue.js http-headers axios

我们使用axios通过promise进行ajax调用。我们有错误:

无法加载xxx:CORS策略已阻止从xxx重定向到yyyy:所请求的资源上没有“ Access-Control-Allow-Origin”标头。因此,不允许访问原始xxxx。

我们的xxxx域是vue Js应用程序,而YYYY是基本的codeginiter V3框架。

我们不得不使用主控制器:header('Access-Control-Allow-Origin:xxx');

但是那似乎不起作用!

我们已经尝试了所有有关标头的方法...使用标头('Access-Control-Allow-Origin:*),利用codeigniter的$ this-> output-> set_header,将标头放入index.php,制作Ajax没有Axios,只有XMLHttpRequest,什么都不做!

我们最终使用了一个技巧来调用我们的外部网址:

var script = document.createElement('script');

script.src = yyyy;
document.getElementsByTagName('body')[0].appendChild(script);

但这不是最干净的方法。

我想知道每个人是否都面临着表面问题,以及他如何解决这一问题。

谢谢大家!

凯文

2 个答案:

答案 0 :(得分:0)

也许关于Web服务器设置。像.htaccess一样: 标头将X-Permitted-Cross-Domain-Policies设置为“无”吗?

答案 1 :(得分:0)

Re:

我们找到了问题所在。如果存在重定向,则Codeigniter Logique不起作用。如果要使其工作,则必须使最简单的控制器成为可能。

其他错误,我们将此URL称为:http://xxxx/disconnect/而不是http://yyyy/disconnect(无斜杠)

其他要注意的是,导航器相同以保存呼叫的缓存。如果要查看修改,请清除缓存。

祝你好日子:)!

凯文