Я пытаюсь получить доступ к WebAPI скрипта Служб Google с моего веб-сайта, используя javascript для передачи некоторого значения и создания файла Excel и загрузки его через этот API.
Я пробовал 2 следующим образом:
- Использование запроса POST с $ .post.
Мои значения много.Итак, во-первых, я использую POST-запрос с телом JSON значений списка.Браузер отклоняет ответ API из-за ошибки CORS.
Я исследовал CORS, чтобы понять его.В некоторых темах я обнаружил, что решение заключается в следующем втором способе.
Доступ к XMLHttpRequest по адресу https://script.google.com/macros/s/xxxxxxx' from origin 'https://example.com' заблокирован политикой CORS:Ответ на запрос предварительной проверки не проходит проверку контроля доступа: в запрашиваемом ресурсе отсутствует заголовок «Access-Control-Allow-Origin».
Использование GET-запроса с $ .getJSON.
Я передаю JSON значений списка в параметр URL и выполняю GET-запрос.Работало нормально.
var url = 'https://script.google.com/macros/s/' + api_id + '/exec?' + request_parameter_string;
$.post(url, payload, function(data, textStatus) {
// Do something
}, 'json');
$.getJSON(url, function(json_result) {
// Do something
})
.fail(function() {
// Do something
});
Что я не понимаю, почему?Почему он работает с getJSON
, но не работает с post
?
Я думаю, что CORS работает с запросами GET и POST.И я проверил заголовок ответа с почтальоном.Заголовки одинаковы Access-Control-Allow-Origin →*
.
Я думаю, что-то не так внутри функций getJSON
и post
.
* ОБНОВЛЕНИЕ: Обновление сообщения об ошибке POST CORS.