2016-11-08 60 views
2

我想:我在哪裏可以在ajax調用中插入標題?

$("#wiki").on('click', function(e) { 
    var q = $(this).data('subject'); 
    $.getJSON("https://it.wikipedia.org/w/api.php?gsrnamespace=0&gsrsearch=test&gsrlimit=10&prop=pageimages|extracts&pilimit=max&exintro&explaintext&exsentences=1&exlimit=max?callback=?", { 
    srsearch: q, 
    action: "query", 
    list: "search", 
    prop: "text", 
    section: 0, 
    format: "json" 
    }, function(data) { 
     headers: { 
     "Accept" : "application/json; charset=utf-8", 
     "Content-Type": "application/javascript; charset=utf-8", 
     "Access-Control-Allow-Origin" : "*" 
     }, 
     $("#results").empty(); 
     $("#results").append("<p>Results for <b>" + q + "</b></p>"); 
     $.each(data.query.search, function(i, item) { 
     $("#results").append("<div><a href='http://it.wikipedia.org/wiki/" + encodeURIComponent(item.title) + "'>" + item.title + "</a><br>" + item.snippet + "<br><br></div>"); 
    }); 
    }, 
); 
}); 

而且

$("#wiki").on('click', function(e) { 
    var q = $(this).data('subject'); 
    $.getJSON("https://it.wikipedia.org/w/api.php?gsrnamespace=0&gsrsearch=test&gsrlimit=10&prop=pageimages|extracts&pilimit=max&exintro&explaintext&exsentences=1&exlimit=max?callback=?", { 
    srsearch: q, 
    action: "query", 
    list: "search", 
    prop: "text", 
    section: 0, 
    format: "json" 
    }, 
    headers: { 
    "Accept" : "application/json; charset=utf-8", 
    "Content-Type": "application/javascript; charset=utf-8", 
    "Access-Control-Allow-Origin" : "*" 
    }, 
    function(data) { 
     $("#results").empty(); 
     $("#results").append("<p>Results for <b>" + q + "</b></p>"); 
     $.each(data.query.search, function(i, item) { 
     $("#results").append("<div><a href='http://it.wikipedia.org/wiki/" + encodeURIComponent(item.title) + "'>" + item.title + "</a><br>" + item.snippet + "<br><br></div>"); 
    }); 
    }, 
); 
}); 

回答

5

有沒有構造來在$.getJSON呼叫添加頁眉。您需要使用完整$.ajax()請求的beforeSend屬性,或者使用$.ajaxSetup()將相同beforeSend屬性應用於所有AJAX調用,無論使用何種jQuery方法創建它們。

另請注意,Access-Control-Allow-Origin標頭應置於響應中,而不是請求。這對您發送的內容沒有任何影響。

如果您試圖避免在某些瀏覽器中顯示的CORS警告(建議使用Access-Control-Allow-Origin標頭),那麼您需要將其添加到服務器端代碼中。假設您無法訪問服務器代碼(因爲在這種情況下您正在調用維基百科)並且您收到CORS錯誤,那麼您無法通過JS代碼調用該域。

+0

我沒有downvote,但不是他們試圖發送的響應頭? – JJJ

+0

這是一個非常好的點@JJJ。答案更新 –

+0

@RoryMcCrossan mm我看到了,謝謝 –