2015-07-20 109 views
0

頭我對我的控制檯日誌此錯誤:否「訪問控制允許來源」我的控制檯日誌

的XMLHttpRequest無法加載http://example.com/jsonconnect1.php。否 「訪問控制 - 允許來源」標題出現在請求的 資源中。因此不允許原產地'null'訪問。

我知道有噸這個問題已經被問,但所有的人,其中我的代碼使用的getJSON

$(document).ready(function(){ 

var url="http://example.com/jsonconnect1.php"; 

$.getJSON(url,function(json){ 

// loop through the members here 

$.each(json.members,function(i,dat){ 

$("#msg").append(

'<div class="members">'+ 

'<h1>'+dat.id+'</h1>'+ 

'<p>Firstname : <em>'+dat.username+'</em>'+ 

'<p>SurName : <em>'+dat.mobileno+'</em></p>'+ 

'<p>Title : <strong>'+dat.total+'</strong></p>'+ 

'<hr>'+ 

'</div>' 

); 

任何想法用所謂的「AJAX」?謝謝。

+4

'getJSON'也是阿賈克斯。 – Daan

+0

你怎麼看我解決控制檯日誌中顯示的錯誤@Daan – ekky008

回答

0

您顯然正在嘗試一個跨源AJAX請求。這意味着您嘗試聯繫與源網頁所在網域不同的域/端口上的服務器。這被稱爲交叉原點請求,默認情況下不允許。您可以閱讀關於瀏覽器的相同原產地安全策略here

爲了被允許做直接跨起源請求時,你正在爲必須特別允許請求的服務器。

Access-Control-Allow-Origin header是允許這種類型的訪問的一種方式,但它顯然不適用該頭,因此請求被瀏覽器拒絕。你可以閱讀關於CORS(跨源資源共享)如何在這裏工作enter link description here

使用JSONP(也需要目標服務器協作以支持JSONP請求)或通過代理(您可以聯繫的另一個服務器,可以向請求的服務器發出請求爲你,並返回結果)。該代理需要您有權訪問的服務器上的自己的服務器代碼,但不需要目標服務器的合作。

the doc on this page,似乎麥蓋提點播不支持JSONP,所以你可以使用這種形式的跨起源請求。如果您爲$.ajax()設置適當的dataType: "jsonp"選項,jQuery的ajax支持該格式。

相關問題