2016-12-02 125 views
0

我正在嘗試向Yelp API發送GET請求。如何在請求JSONP時設置授權HTTP頭?

當我嘗試使用下面的代碼時,出現401錯誤。基於我的研究,如果我要求JSONP數據,我認爲我不能以這種方式設置授權。但是,當我嘗試使用另一種數據類型時,出現「跨源請求阻止」錯誤。我如何解決這個問題?

function findFood() { 
     var lat = document.getElementById("lat"); 
     var lon = document.getElementById("lon"); 

     console.log("lat: " + lat.textContent + " lon: " + lon.textContent); 

     var url = API_HOST + SEARCH_PATH + "term=" + SEARCH_TERM + "&radius=" + SEARCH_RADIUS + "&latitude=" + parseFloat(lat.textContent) + "&longitude=" + parseFloat(lon.textContent); 

     console.log(url); 
     console.log("Bearer " + ACCESS_TOKEN); 

     $.ajax({ 
      type: "GET", 
      url: url, 
      dataType: 'jsonp', 
      beforeSend: function (xhr) { 
       xhr.setRequestHeader('Authorization', 'Bearer ' + ACCESS_TOKEN); 
      }, 
      success: function (data) { 
       console.log(JSON.stringify(data)); 
      } 
     }) 

    }; 

回答

0

您是否試圖用POST數據替換標頭?在Yelp網站上,這就是他們所說的! 查看下列鏈接:jQuery API Post & Yelp API 2.0 Authentification我真的很希望這會起作用!讓我知道在評論部分!

+0

我想查詢餐廳的Yelp API ......爲什麼會是POST調用? – stumpylumpy

+0

問題是授權,你試圖登錄Yelp API,但它不起作用,所以我只是給你另一種方式來做到這一點! @stumpylumpy –