带有XML调用的CORS post索引文件

时间:2016-10-20 10:59:35

标签: javascript ajax xml url cors

我有一些Ajax进行跨源资源调用

 $("#inductive1").click(function (event) {
    $.post(
       "https://www.mysite.co.uk/folder/tests/Inductive/Test1/index.phtml",
        function (data) {
            $('.stage2').html(data);
        }
    );
});

index.phtml文件中,我有一些调用exam.xml

的脚本

index.phtml内的脚本

( function($, undefined) {

            $(function() {

                var test = new Test({

                    testName: "Inductive Test 1",
                    dataURL : "/getresultshtml.php",
                    sendEmailURL: "/sendresultsbyemail.php",
                    contentFolder : "./",
                    solutionURL: "../../../content/f/id/10/",
                    userID: 0,
                    courseItemID: 25,
                    XMLFile: "exam.xml",
                    isStandalone: false
                });

                test.start();

            });
        }(jQuery));

但是,尝试从其他服务器调用xml文件

EG

https://server1.com/exam.xml

应该是

https://myserver.com/exam.xml

我已尝试将JS更改为直接路径,如

 XMLFile: "htttps:/myserver.com/exam.xml"

但它被视为

https://server1.com/myserver.com/exam.xml

如何更改javascript以便将根网址更改为myserver.com而不是server1.com

2 个答案:

答案 0 :(得分:2)

看起来您正在使用的某个插件正在更改文档的基本网址, 你可以尝试将它放在index.phtml的开头

<base href="https://myserver.com">

如果这不起作用,您可能需要在ajax调用之前通过JavaScript动态更改基本属性

document.write("<base href='http://myserver.com/'>");

答案 1 :(得分:0)

我不确定Test将如何使用XMLFile。但根据jquery.ajax documentation,传递url参数中的完整网址(使用协议)应该足够了。

也许test.start()正在做一些操作?

我发现的唯一其他可能的问题是,您使用额外的t和缺少的/

宣布您的协议
XMLFile: "htttps:/myserver.com/exam.xml"

尝试使用

XMLFile: "https://myserver.com/exam.xml"