javascript - 从另一个域运行 Javascript 函数

标签 javascript cors

从 JS 开始并不是我的强项。我想做的是在两个站点之间运行一些代码。例如,我们有站点 A 和站点 B。

站点 B 包含一个名为 auth.js 的文件,其内容如下。

function  test() {
alert("bingo");
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        // document.getElementById("demo").innerHTML = this.responseText;
        alert( this.responseText );
    }
};
xhttp.open("POST", "https://siteb.com/auth.php", true);
xhttp.send();
};

现在在站点 A 中,我包括 auth.js并运行函数test()

到目前为止,我收到的警报消息很好,但是我收到了一条有关 CORS 的控制台消息(我用 google 搜索了一下,这对我来说没有意义)。

所有代码都位于站点 B 上。我想在调用此 js 文件时运行 php 脚本,然后将数据以 javascript 形式输出到站点 A 上。所以我的 php 脚本将完成所有身份验证构造新的 js 代码并回显它。

为了使 CORS 正常工作,我缺少什么?

提前致谢。

最佳答案

好吧,终于得到了一些可以为我工作的代码。这就是我所做的。

在站点 B 的 auth.php 中,我添加了以下代码行。

header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST');
header('Access-Control-Max-Age: 1000');
header('Access-Control-Allow-Headers: Content-Type, Authorization, X-Requested-With');

现在这允许所有流量通过。如果您想将其限制为特定域,请将 * 更改为 http://example.com

并且还修改了站点 B 上的文件 auth.js

function  test() {
alert("bingo");

$.ajax({
    type: 'POST',
    url: 'https://siteb.com/auth.php',
    crossDomain: true,
    data: {},
    async: false,
    success: function(response) {
        alert(response);
    },
    error: function (jqXHR, textStatus, errorThrown) {
        alert(errorThrown);
        alert(textStatus);
    }
});
};

现在在站点 A。我只调用 test();

希望这对其他人有帮助

关于javascript - 从另一个域运行 Javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50667639/

相关文章:

javascript - 在 jquery 中使用 optgroup 删除项目多选

javascript - 在 Express JS 中使用全局翻译对象

javascript - 我怎样才能让这段Javascript代码更简洁呢?

javascript - 单击按钮提交多个表单,一个接着一个

javascript - CORS 适用于 chrome 但不适用于 firefox、angularjs

javascript - $(window).load(function () 不起作用

javascript - 在Vue中使用Axios Api发布数据

java - 为什么我需要在 tomcat 应用程序上启用 CORS

javascript - Socket.IO 尝试通过 https ://instead of wss://and getting a CORS error 连接

javascript - 我的所有浏览器都没有发送原始 header