tôi đang cố gắng để thực hiện một yêu cầu bài qua jQuery sử dụng một lời hứa ES6:jQuery ajax với ES6 Promises
Tôi có một chức năng:
getPostPromise(something, anotherthing) {
return new Promise(function(resolve, reject) {
$.ajax({
url: someURL,
type: 'post',
contentType: 'application/json; charset=utf-8',
data: JSON.stringify(
something: something,
anotherthing: anotherthing
}),
dataType: 'json',
success: resolve,
error: reject
});
});
}
và tôi gọi nó là như vậy:
getPostPromise(
'someFooStuff',
'someBarStuff'
).then(
function(returnedData) {
console.log("Good: ", returnedData);
},
function(responseObject) {
console.log("Bad: ", responseObject);
}
).catch(
function(errorThrown) {
console.log("Exception: ", errorThrown);
}
);
Máy chủ của tôi đang trả về phản hồi như mong đợi với phần thân yêu cầu ở định dạng JSON nhưng đầu ra bảng điều khiển của tôi là:
Tốt: undefined
Tại sao tôi không nhận được dữ liệu trả về?
Nhờ bất kỳ ai/mọi người giúp đỡ.
--- CẬP NHẬT EDIT ---
Tôi đã giảm js của mình tới chỉ:
import $ from 'jquery';
$.get('http://localhost:8008/api/user')
.done(function(data) {
console.log(data);
});
tôi vẫn nhận được xác định là đầu ra. Nếu tôi mở yêu cầu trong tab mạng, tôi có thể thấy đối tượng phản hồi với dữ liệu chính xác. Yêu cầu được thực hiện, máy chủ của tôi rất vui và đáp ứng, và kết quả nằm trong trình duyệt của tôi nhưng thông số dữ liệu của thực hiện là không xác định. Tôi đang bối rối.
--- UPDATE 2 - GIẢI PHÁP FOUND ---
tôi phát hiện ra rằng vấn đề là với việc sử dụng: https://github.com/jpillora/xdomain để có được xung quanh CORS. Dường như thư viện đó sẽ tăng giá trị trở lại bằng cách nào đó. Tôi đã gỡ bỏ nó và sẽ thực hiện CORS đúng cách và địa ngục với các trình duyệt không hỗ trợ nó.
tôi không thể tái tạo lỗi của bạn. –