Tôi đang xây dựng tiện ích mở rộng trình duyệt Google Chrome sử dụng $.ajax
yêu cầu gửi dữ liệu từ trang web đến máy chủ của tôi (hiện được lưu trữ bằng máy chủ cục bộ). Các content_script.js
tập tin đó đang được thực hiện trong bối cảnh của các trang web (more on content scripts) mà phần mở rộng có quyền truy cập để chạy mã này:Yêu cầu Ajax thành công nhưng kết quả trống rỗng
//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");
}
});
Vấn đề là yêu cầu Ajax
đang thành công nhưng lập luận data
mà nó trả về là trống ...
Giao diện điều khiển trông như thế này sau khi mã được điều hành:
Hiện nay các nội dung của tập tin uploadedendpoint.php
là:
<?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>
Điều này có nghĩa là ít nhất phải có thứ gì đó được trả lại trong biến số data
.
Tôi đã xác nhận thêm rằng yêu cầu thành công vì khi tôi gửi yêu cầu đến một url bị hỏng (ví dụ: uploaddddddendpoint.php), mã bên trong thông số error
của $.ajax
được thực hiện.
Tôi đã đọc câu hỏi tương tự như jQuery $.ajax response empty, but only in Chrome nhưng vô ích ...
CẬP NHẬT:
Tôi đã gỡ bỏ tham số thứ hai type: "jsonp"
không hợp lệ hoàn toàn và đã thêm dataType: "text/html"
. Hiện tại, tôi nhận được yêu cầu ajax
không thành công mỗi khi mã được chạy.
CẬP NHẬT: Lạ lùng thay đổi dataType : "text/html"
để dataType : "html"
làm cho ajax
yêu cầu để thành công nhưng một lần nữa với một biến trống data
. CẬP NHẬT: Khi sử dụng bộ công cụ dev để giám sát Mạng XHR đây là những tin nhắn/câu trả lời gửi:
Liên quan đến lá cờ của sự trùng lặp có thể Impossible to cross site ajax api calls in a chrome extension? Tôi đề nghị khác! Tôi đã điều tra câu hỏi đó và vấn đề KHÔNG có vẻ giống nhau.
Hãy thử điều này trên dòng đầu tiên của tệp php: ' Php echo 'Điều này xuất phát từ tệp php'; chết(); ?> '- Kiểm tra xem bạn có nhận được điều này trong bảng điều khiển không. – Sergio
Tab Mạng hiển thị những gì? hãy thử xóa loại 'jsonp'. – akonsu
@Sergio không thay đổi ... – Brannon