簡體   English   中英

以 json 形式獲取帖子響應

[英]Get post response as json

在開始之前,我想對我的英語說聲抱歉,它不是我的母語。

我正在嘗試為 GitHub 授權設置 OAuth2。

我堅持在這一步,我應該向 github 發送 POST 請求並接收訪問令牌。 問題是當我發送 POST 請求時,我的瀏覽器會自動下載帶有訪問令牌的文件。 由於我無法使用 javascript 打開此文件,因此我正在嘗試獲取 json 作為響應。

文檔中寫道,我可以更改接受標頭並接收 json,但我無法編寫正確的 POST 請求。

我已經嘗試了很多東西,例如:

$.ajax({
  method: "POST",
  url: "https://github.com/login/oauth/access_token",
  dataType: "application/json"
});

或者

$.ajax({
    url: 'https://github.com/login/oauth/access_token',
     headers: {          
         Accept : "application/json",          
     }     
    data: "data",    
    success : function(response) {  
        console.log(response);  
} })

等等

但我收到此錯誤:

XMLHttpRequest 無法加載 github.com/login/oauth/access_token。 請求的資源上不存在“Access-Control-Allow-Origin”標頭。 因此,不允許訪問來源“ http://braga.fedyunin.com.ua ”。 響應具有 HTTP 狀態代碼 404。

在谷歌找不到任何有用的信息,所以我不得不在這里注冊。 感謝幫助。

閱讀https://developer.github.com/v3/部分:跨源資源共享

我嘗試了同樣的事情,但由於 GitHub API 的響應中缺少 Access-Control-Allow-Origin 標頭,也失敗了。 我聯系了 GitHub 支持並找出了問題所在。

它不起作用,因為您試圖從 GitHub API 不支持的 Web 應用程序使用 OAuth。 當您以這種方式進行身份驗證時,您的 client_id 和 client_secret 必須位於網頁中的某個位置並與 POST 請求一起發送。 可以使用 Firebug 或類似工具查看整個請求,包括您的 client_secret。 因為公開您的 client_secret 是一個壞主意,GitHub API 不會返回 Access-Control-Allow-Origin 標頭,從而阻止您檢索令牌。

您必須從服務器端發出 POST 並以這種方式獲取令牌。 當您這樣做時,client_secret 在您的服務器上,而不是在人們的瀏覽器中。

從您的站點到 github.com 的 Ajax 請求失敗,因為瀏覽器對 xhr 請求遵循相同的源策略。 這意味着只能對同一來源的資源發出 xhr 請求。 為了允許跨源請求,服務器需要將可以訪問特定資源的域列​​入白名單。

在您的情況下,為此,您需要通過在此處輸入詳細信息將您的站點注冊為您的 github 帳戶上的應用程序: https : //github.com/settings/applications/new

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM