Я хочу, чтобы у моего приложения был доступ "только я", и чтобы он возвращал JSON с помощью doGet, но он возвращает ошибку браузера. "Доступ к XMLHttpRequest в" https://script.google.com/macros/s/*******/exec' из источника "null" был заблокирован политикой CORS: В запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin». ", Но когда я возвращаю JSONP, ошибки нет, почему? Нужно ли мне придерживаться JSONP, когда я хочу, чтобы у моего приложения был доступ «только я».
function doGet(e) {
// do whatever this webapp is for
var result = {}
if(e.parameter.callback){
result = { result : "JSONP success" };
} else{
result = { result : "JSON success" };
}
// prepare the result
var s = JSON.stringify(result);
// publish result
return ContentService
.createTextOutput(e.parameter.callback ? e.parameter.callback + "(" + s + ")" : s )
.setMimeType(e.parameter.callback ? ContentService.MimeType.JAVASCRIPT : ContentService.MimeType.JSON);
}
клиентский скрипт
<script>
$(function() {
$.ajax({
type: "get",
url:
"https://script.google.com/macros/s/*******/exec?callback=ctrlq",
data: {},
dataType: "jsonp"
});
$.ajax({
type: "get",
url:
"https://script.google.com/macros/s/*******/exec",
data: {},
dataType: "json"
}).done(function(e) {
console.log(e);
});
});
function ctrlq(e) {
console.log(e);
}
</script>