Доступ к Xmlhttprequest в 'https://script.google.com/macros/ от Origin' null 'был заблокирован политикой Cors [DuplicateJquery

Программирование на jquery
Ответить
Anonymous
 Доступ к Xmlhttprequest в 'https://script.google.com/macros/ от Origin' null 'был заблокирован политикой Cors [Duplicate

Сообщение Anonymous »

Ошибка:

Код: Выделить всё

Access to XMLHttpRequest at 'https://script.google.com/macros/s//exec' from origin 'null' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

Приложения скрипты:
function doGet() {
  return HtmlService.createHtmlOutputFromFile('index')
    .setTitle('PokeQuest DB')
    .setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);
}

function doPost(request) {
Logger.log("doPost function triggered.");
  try {
    var requestData = JSON.parse(request.postData.contents);
  } catch (e) {
Logger.log("Error parsing POST payload: " + e.message);
    return httpResponse(error(400, "invalid_post_payload", {
      payload: request.postData && request.postData.contents,
      type: request.postData && request.postData.type,
      message: e && e.message
    }));
  }

  // Batch or single
  if (Array.isArray(requestData)) {
Logger.log("Handling batch request with " + requestData.length + " items.");
    var result = requestData.map(handleRequest);
    return httpResponse(result);
  }

Logger.log("Handling single request.");
  return httpResponse(handleRequest(requestData));
}

function httpResponse(obj) {
  const out = ContentService.createTextOutput(JSON.stringify(obj))
    .setMimeType(ContentService.MimeType.JSON);
 
// If CORS is enabled in the config, add the access control header.
if (ENABLE_CORS) {
out.addHttpHeader('Access-Control-Allow-Origin', CORS_ALLOW_ORIGIN);
out.addHttpHeader('Access-Control-Allow-Methods', 'POST, GET, OPTIONS');
out.addHttpHeader('Access-Control-Allow-Headers', 'Content-Type, Accept');
}
  return out;
}

const ENABLE_CORS = true;
const CORS_ALLOW_ORIGIN = "*"; // or your site origin
< /code>
jQuery: < /p>
_post(payload) {
return $.ajax({
url: this.scriptURL,
type: "POST",
contentType: "text/plain;charset=utf-8",
data: JSON.stringify(payload)
}).then(res => {
// If Apps Script returns a JSON string, parse it; otherwise trust jQuery
if (typeof res === "string") {
try { return JSON.parse(res); } catch { return res; }
}
return res;
});
}
< /code>
Это в основном вся настройка, которую я имею сейчас, и я не могу понять, почему браузер продолжает бросать эту ошибку Cors всякий раз, когда я пытаюсь поговорить с конечной точкой сценария Google Apps. Странно то, что запросы на самом деле преуспевают на стороне сервера, я вижу, что данные, записанные на лист Google, просто отлично, но в консоли браузера все еще выглядит так, как будто ответ блокируется из -за отсутствующих заголовков CORS. Я уже добавил, что в моей функции httpresponse-allow-allow-worly: * и другие обычные заголовки в моей функции httpresponse, поэтому я предположил, что это позаботится об этом, но, по-видимому, нет. Идея состоит в том, чтобы иметь статическую страницу, размещенную на страницах GitHub, которая может выполнять все основные операции CRUD против листа Google. Я хочу иметь возможность добавлять строки, обновлять существующие ячейки, может быть, удалить строку, а также прочитать данные обратно, на протяжении всего jQuery Ajax вызовы с фронта. Теперь все сломано). В идеале мне хотелось бы настройку, в которой мой статический сайт может просто поговорить непосредственно с конечной точкой скрипта приложений без необходимости прокси -API, поскольку они ограничены или платят. Страницы), о которых я должен знать? Пожалуйста, помогите спасибо.

Подробнее здесь: https://stackoverflow.com/questions/797 ... rigin-null
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Jquery»