这是我目前用于每5分钟发送请求的Javascript代码。
function sendRequest() {
$(document).ready(function() {
console.log($.post('../notify/notify.php', { notify: 1 }).done());
});
}
setInterval(function() {
console.log(sendRequest());
}, 5000);
当我在开发者工具中检查网络时,请求被发送并按预期返回响应。这是我的PHP代码:
header('Content-Type: application/javascript');
if(isset($_POST['notify']) && $_POST['notfiy'] == "1") {
echo json_encode(array(
'Title' => 'Welcome to our Site',
'Message' => 'You are current recieving notifications.',
'Location' => 'http://example.com/',
'State' => true
),true);
} else {
echo json_encode(array(
'State' => false
), true);
}
然而,当我检查控制台时,我发现它是一个类型为
Object {readyState: "1"}
的对象,然后当我展开它时,期望的响应被包裹在一个responseText
字段内。 然而,当我将.responseText
附加到$.post().done()
的末尾时,console.log()
返回undefined。我做错了什么? 我怎样才能从我的PHP文件中获取响应?
更新:
经过审查问题,我了解到我声明了错误的
header()
。 类型应该是/json
而不是/javascript
。 此外,响应无法读取,因为像先前所述,我只记录了请求的promise。 我需要在done()
函数中添加一个function(param)
,然后在其中使用响应。
php
中将header
的Content-Type
设置为"application/javascript"
?应该将Content-Type
设置为"application/json"
吗? - guest271314