Я хотел бы вызвать API по почте из моего chrome-расширения, проблема в том, что я не получаю ответные данные.
Я только что получил блокировку перекрестного чтения (CORB) в консолии ответ пуст.
Блокировка перекрестного чтения (CORB) заблокировала ответ перекрестного происхождения http://127.0.0.1:8080/api/v1/login/ldap с приложением MIME-типа / json.См. https://www.chromestatus.com/feature/5629709824032768 для получения более подробной информации.
сначала я попытался вызвать ajax напрямую:
$.ajax({
type: 'POST',
url: 'http://127.0.0.1:8080/api/v1/login/local',
data: postBody,
success: function(resData, status, jqXHR) {
console.log({resData, status, jqXHR});
},
error: function(jqXHR, status) {
console.log({jqXHR, status});
}
});
я попытался переместить мой вызов ajax из content.js вbackground.js вот так
background.js
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
if(request.contentScriptQuery === 'login') {
$.ajax({
type: 'POST',
url: 'http://127.0.0.1:8080/api/v1/login/local',
data: postBody,
success: function(resData, status, jqXHR) {
sendResponse([
{
resData: resData,
status: status,
jqXHR: jqXHR
}, null
]);
},
error: function(jqXHR, status) {
sendResponse([
null, {
status: status,
jqXHR: jqXHR
}
]);
}
});
}
//right here?
return true;
});
content.js
chrome.runtime.sendMessage({contentScriptQuery: 'login'}, messageResponse =>{
console.log(messageResponse);
});
Но в этом случае я получил следующую ошибку:
"Unchecked runtime.lastError: Порт сообщения закрыт до получения ответа."
, и я не знаю, как оставить порт открытым и получить тело запроса.или даже если я получу тело или все еще получу проблему с кором.
вот моя последняя попытка с сегодняшнего дня, порт все еще закрыт: - (
"Не проверено runtime.lastError:Порт сообщения закрыт до получения ответа. "
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
if(request.contentScriptQuery === 'loginLocal') {
$.ajax({
type: 'POST',
url: 'http://127.0.0.1:8080/api/v1/login/local',
data: postBody
}).then(function(resData, status, jqXHR) {
sendResponse([
{
statuscode: jqXHR.status,
resData: resData,
status: status
}, null
]);
}, function(jqXHR, status) {
sendResponse([
null, {
statuscode: jqXHR.status,
status: status
}
]);
});
return true;
}
});