我想發送一個簡單的POST到一個Web服務,但服務器似乎並沒有得到POST數據。這是AJAX:爲什麼服務器沒有收到我的POST數據?
popup.js
$.ajax({
url: 'http://www.flags.99k.org/removeFlag.php',
type: 'POST',
data: "UID=6",
dataType: 'json'
}).done(function(response)
{
$('<p />').text('response: ' + response.success).appendTo($('body'));
});
- 我期待
response.success
是1
,這將意味着成功發佈。 - 我也可以獲得
0
,這意味着mysql_query(...)
返回false。 - 但是取而代之,我得到
-1
,這意味着isset($_POST['UID'])
返回false。
.../removeFlag.php
<?php
include("DB.php"); // connects and selects database.
if(isset($_POST['UID'])) {
$sql_removeFlag = "DELETE FROM Flags WHERE UID = " . $_POST['UID'] . ";";
$success = mysql_query($sql_removeFlag);
$jsonStr = ("{ \"success\":\"" . $success . "\"}");
echo $jsonStr;
} else {
echo("{ \"success\": -1 }");
}
?>
我試圖格式化數據的不同方法(爲 'uid'= 6,{UID:6},{ 'UID':6} ,...)但沒有工作。
ajax從谷歌瀏覽器擴展彈出窗口運行,但我已將目標地址添加到權限列表中。
的manifest.json
{
"name": "Ajax POST",
"version": "1.0",
"description": "Ajax POST from popup on click.",
"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html"
},
"permissions": [
"flags.99k.org/*",
"http://flags.99k.org/*",
"http://www.flags.99k.org/*"
]
}
你試過什麼樣的調試? – dldnh 2012-04-01 08:47:04
@dldnh我其實不知道還有什麼可以嘗試的。我知道ajax調用會通過,但從未接收到發佈數據。如果我使用GET而不是POST,它工作正常...... – Shawn 2012-04-01 19:59:01