Я создаю расширение браузера Google Chrome, которое использует $.ajax
запросы на отправку данных с веб-страниц на мой сервер (в настоящее время размещается с использованием localhost). content_script.js
файл, который выполняется в контексте веб-страниц (more on content scripts), что расширение имеет доступ к пробегов этот код:Запрос Ajax успешно завершен, но результат пуст
//note: encode64String is assigned earlier in the script...
$.ajax({
type: "POST",
url: "http://localhost:8888/quartzsite/uploadendpoint.php",
type: "jsonp",
data: {img: encode64String},
contentType: "application/x-www-form-urlencoded;charset=UTF-8",
success: function(data){
console.log("The ajax request succeeded!");
console.log("The result is: ");
console.log(data);
},
error: function(){
console.log("The request failed");
}
});
Проблема заключается в том, что Ajax
запрос преуспевает, но data
аргумент, что он возвращается в пустой ...
консоль выглядит следующим образом после того, как код запуска:
в настоящее время содержимое файла uploadedendpoint.php
являются:
<?php
header("Access-Control-Allow-Origin: *");
echo 'This comes from php file'; die();
?>
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
</head>
<body>
The content of the document......
</body>
</html>
Это означает, что в переменной data
должно быть хотя бы что-то.
Я также подтвердил, что запрос преуспевает, потому что, когда я отправить запрос на сломанной URL (т.е. uploaddddddendpoint.php) кода внутри error
параметра $.ajax
«s выполняется.
Я читал подобные вопросы, как jQuery $.ajax response empty, but only in Chrome, но безрезультатно ...
UPDATE:
Я удалил недопустимый параметр второго type: "jsonp"
полностью и добавил dataType: "text/html"
. Теперь я получаю неудачный запрос ajax
каждый раз, когда код запускается.
UPDATE: Как ни странно меняется dataType : "text/html"
к dataType : "html"
вызывает ajax
запрос на успех, но снова с пустой data
переменной. UPDATE: При использовании Dev инструментария для мониторинга сети XHR Эти отправленные сообщения/ответ:
Что касается флага возможного дублирования в Impossible to cross site ajax api calls in a chrome extension? я предлагаю иначе! Я исследовал этот вопрос, и проблема НЕ кажется одинаковой.
Попробуйте это в первой строке файла php: ' Php echo 'Это происходит из php-файла'; умереть(); ?> '- Проверьте, получилось ли это в консоли. – Sergio
Что показывает вкладка «Сеть»? попробуйте удалить тип 'jsonp'. – akonsu
@Sergio без изменений ... – Brannon