奇怪的行为 - 没有'Access-Control-Allow-Origin'标题

时间:2015-08-13 16:01:49

标签: php ajax http http-headers http-status-code-404

我收到以下错误:

  

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
    });

编辑2

这可以在error_log中找到:

  

来自脚本的格式错误的标头。错误的标头=&lt;&gt; ...用户未知:php-cgi,   referer:http://www.example.com/

注意 - ajax.phpindex.php都位于同一个域中,即使响应和错误也是如此。

0 个答案:

没有答案