如果我这样做:
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标头才能使其正常工作?
答案 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。