回声

时间:2014-02-05 07:22:49

标签: php jquery ajax cross-domain

如果我这样做:

jQuery.ajax({
    url: 'http://server.com/script.php',
    type: 'POST',
    crossDomain: true,
    data: complete_data,
    complete: function(response, textStatus) {
        if (textStatus === 'success') {
            jQuery('#content > form').html(response.responseText);
        }
    }
});

然后server.com上的script.php看起来像这样:

我工作的防火墙不允许我在其中发布带有脚本标记的内容,但想象一下php脚本将javascript脚本标记回显到URL https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&libraries=places

然后我收到此错误

XMLHttpRequest cannot load https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&libraries=places. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://my-local-machine.dev' is therefore not allowed access.

在哪里设置Access-Control-Allow-Origin标头才能使其正常工作?

1 个答案:

答案 0 :(得分:0)

您可以在https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&libraries=places的HTTP标头中进行设置,但由于您(可能)不是Google,因此您无法这样做。

尝试通过XHR而不是脚本元素获取脚本可能是由于jQuery尝试通过.html()处理在脚本元素中添加HTML的方式。使用createElement / appendChild / etc而不是innerHTML来构建您的DOM。