我希望我的应用可以“仅我自己”访问,并使用doGet返回JSON,但它返回浏览器错误“从源地址'https://script.google.com/macros/s/ ******* / exec'访问XMLHttpRequest” 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>