我有這樣的代碼在JavaScriptAjax調用形式不同的域
var url = 'http://mydomain.com:3000';
url += "/user";
jQuery.ajax({
url: url,
type: "GET",
dataType: "jsonp",
async: false,
success: function (data) {alert(1);
console.log(data);
}
});
在我的網站上http://mydomain.com:80運行,因此它們不在同一個服務器。
http://mydomain.com:3000通過的NodeJS送達代碼
app.get('/user',function(req,res){
var result = {
result:-1
};
res.json(result);
res.writeHead(200, {"Content-Type": "application/json"});
});
當我調用了ajax我從Chrome預覽響應
{
"result": -1
}
得到,但在JavaScript控制檯我得到了錯誤
Uncaught SyntaxError: Unexpected token : user:2
我沒有收到任何提醒信息。
我甚至在的NodeJS
res.end("'"+JSON.stringify(result)+"'");
和鉻預覽響應嘗試是
'{"result":-1}'
和控制檯錯誤消失,但仍然沒有觸發警報
'async:false' - **壞主意**。不是說使用JSONp時會有所作爲... – ThiefMaster 2013-03-09 12:59:45
關注跨源資源共享? http://enable-cors.org/(使您可以在沒有jsonp的情況下執行ajax調用) – Endless 2013-03-09 13:02:03