Я пытаюсь отправить простой POST в веб-службу, но сервер, похоже, не получает данные POST. Это Аякс:Почему сервер не получает мои данные 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(...)
вернулся неверно. - Но вместо этого я получаю
-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 запускается из всплывающего окна расширения Chrome Chrome, но я добавил целевой адрес в список разрешений.
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
@ dldnh Я действительно не знаю, что еще попробовать. Я знаю, что вызов ajax проходит, но данные для записи никогда не принимаются. Если я использую GET, а не POST, он отлично работает ... – Shawn