我收到以下错误:
XMLHttpRequest无法加载www.mysite / ajax.php 没有'Access-Control-Allow-Origin'标题 存在于请求的资源上。原因'www.mysite'不是 允许访问。响应的HTTP状态代码为404.
当我尝试处理Ajax请求时会发生这种情况。
这可以通过添加:
header('Access-Control-Allow-Origin: http://www.example.com/');
然而,只有当我echo
之后(可以是任何东西)之后,这才有效:
<?php
header('Access-Control-Allow-Origin: http://www.example.com/');
echo "<span></span>"; //if this is removed, I'm presented with the error
require_once 'functions.php';
...
?>
当发出echo
时,我再次出现错误。
任何人都可以解释这种奇特的行为吗?
它与Ajax调用的结构有什么关系吗?
var formdata = $( "#calculator_form" ).serialize();
$.get( "ajax.php", formdata). done( function( data ) {
$('.result').html(data); // Printing result into result class div
});
这可以在error_log中找到:
来自脚本的格式错误的标头。错误的标头=&lt;&gt; ...用户未知:php-cgi, referer:http://www.example.com/
注意 - ajax.php
和index.php
都位于同一个域中,即使响应和错误也是如此。