嘿那里,
我正在实现一个小书签,它需要将一些 XMLHttpRequests 发布到通过 JQuery 完成的 php 脚本。
基本上这看起来像这样(只是简单的例子......):
Javascript:
$.post('https://www.myserver.com/script.php').always(function(data) {
console.warn('data:', data);
}
脚本.php:
<?php
header('Access-Control-Allow-Origin: *');
$res["isSession"] = false;
echo json_encode($res);
起初,由于 null-origin,这根本不起作用,但在我看到这篇文章后,我添加了“header('Access-Control-Allow-Origin:*');” 线。
有了这一行,当我在本地安装的 Apache 上执行脚本时,它至少可以工作。
不幸的是,一旦我尝试在位于共享主机上的在线站点上执行它,它就不起作用,但会给我“XmlHttpRequest 错误:Access-Control-Allow-Origin 不允许 Origin null”错误消息。
在共享主机上,它也在运行 Apache。这可能是由某些 Apache 配置引起的吗?如果是,是哪一个?
还有什么问题,我该如何解决?
谢谢
ps.:如果我明确使用 jsonp 作为 jquery-post 的数据类型,它可以工作,但因此我必须重写一些 php 文件和其他一些使用它们的 javascript。因此,如果可能的话,我想避免这个选项......
编辑:我刚刚发现在线服务器上的 php 文件位于一个用 htaccess 文件“锁定”的目录中。如果我将 php 文件移动到每个人都可以访问的目录,我不会收到上述错误消息。
有人现在我可以如何规避这个问题吗?将 php 文件放到可公开访问的目录中并不是我的首选...