这不是不是 CORS问题,该请求与从其发起的页面进入相同的域。
我有一个jquery ajax调用(使用GET,传递一个值),当我将完整的url放在浏览器地址栏中时,它可以正常工作,但是当我从代码中调用它时,会调用ajax错误函数,但是url是永远不会从浏览器发送到服务器。
我在这里发现的类似问题都没有给我答案。
我已经在开发人员工具网络面板中进行了监视,当我直接从浏览器地址栏中发送url时,请求已发送,并且得到了预期的响应。当我从javascript代码发送请求时,它永远不会发送,但是会调用ajax.error()函数。
JAVASCRIPT:
url = "https://blahblah.com/ajax?handler=createTopic&topicName=Test";
jQuery.ajax({
type: "GET", // backward compatibility
method: "GET",
url: url,
dataType: "json",
success: topicSuccess,
error: topicFailure
});
function topicFailure(xhr, status, err)
{
console.log('Topic create failed, with a status code of "' + status + '", and HTTP status of ' + xhr.status);
console.log(xhr);
}
PHP:
$result = createTopic($parms); // $parms has the data passed in
// $result contains correct json data, verified
header('Content-Type: application/json');
http_response_code(200);
echo "$result \n";
exit;
编辑:
对不起,如果我没有提供足够的信息。此ajax请求将与发起请求的页面进入同一域。因此,除非对ajax请求有相同的新要求,否则源策略不是问题。
错误函数输出以下内容(上面的代码):
主题创建失败,状态码为“错误”,HTTP状态为0
当我在firefox中观看开发工具的网络面板时,没有请求被发送。所以我想真正的问题是:
什么会阻止浏览器使用javascript发送简单的ajax GET请求?
再次,请求如下所示:
https://xxxxxx.com/ajax?handler=createTopic&topicName=test
,当我将其直接放在浏览器地址栏中时,该请求就可以正常工作。