我正在構建一個單頁網頁應用程序,它向Flickr發出一個AJAX請求(使用Flickr API)。當我使用curl或郵遞員嘗試請求時,它可以工作。當我使用AJAX(jQuery)從Chrome嘗試它時,我得到一個200迴應,狀態爲「OK」,但始終爲0。如果我採用完全相同的URL(直接複製並粘貼)到postman/curl中,我會得到結果。我一定在做一些愚蠢的事情,但我無法弄清楚。AJAX請求到Flickr API返回0結果,但與捲曲/郵遞員
JavaScript代碼:
var photoQueryURL = 'https://api.flickr.com/services/rest/?' + $.param({
'method': 'flickr.photos.search',
'api_key': flickrAPIKey,
'text': title,
'tags': title,
'format': 'json',
'nojsoncallback': '1'
});
// AJAX Query:
$.ajax(photoQueryURL)
.done(function(data) {
console.log('Sucessful query.');
console.log(data);
})
.fail(function(err) {
console.log('Failed query.');
console.log(err);
});
AJAX查詢:
Request URL:https://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=<my-key>&text=Alex%27s%20Pizzeria&tags=Alex%27s%20Pizzeria&format=json&nojsoncallback=1
Request Method:GET
Status Code:200
Remote Address:69.147.64.33:443
Referrer Policy:no-referrer-when-downgrade
Response Headers
access-control-allow-origin:*
age:2
cache-control:private
content-encoding:gzip
content-length:83
content-type:application/json
date:Sat, 28 Oct 2017 21:59:02 GMT
p3p:policyref="https://policies.yahoo.com/w3c/p3p.xml", CP="CAO DSP COR CUR ADM DEV TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE LOC GOV"
server:ATS
status:200
vary:Accept-Encoding
via:http/1.1 fts126.flickr.bf1.yahoo.com (ApacheTrafficServer [cMsSf ]), http/1.1 e22.ycpi.cha.yahoo.com (ApacheTrafficServer [cMsSf ])
x-content-type-options:nosniff
x-frame-options:SAMEORIGIN
x-served-by:www-bm006.flickr.bf1.yahoo.com
Request Headers
:authority:api.flickr.com
:method:GET
:path:/services/rest/?method=flickr.photos.search&api_key=<my-key>&text=Alex%27s%20Pizzeria&tags=Alex%27s%20Pizzeria&format=json&nojsoncallback=1
:scheme:https
accept:application/json, text/javascript, */*; q=0.01
accept-encoding:gzip, deflate, br
accept-language:en-US,en;q=0.9
cache-control:no-cache
origin:null
pragma:no-cache
user-agent:Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.75 Safari/537.36
Query String Parameters
view source
view URL encoded
method:flickr.photos.search
api_key:<my-key>
text:Alex's Pizzeria
tags:Alex's Pizzeria
format:json
nojsoncallback:1
Ajax響應:
{"photos":{"page":1,"pages":0,"perpage":100,"total":"0","photo":[]},"stat":"ok"}
查詢,捲曲:
curl -k "https://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=<my-key>&text=Alex%27s%20Pizza&tags=Alex%27s%20Pizza&format=json&nojsoncallback=1"
響應(通知5個結果):
{"photos": {"page": 1, "pages": 1, "perpage": 100, "total": "5",
"photo": [{"id":(...)}]},
"stat":"ok"}
建議?
--Jim
你能分享你得到'JSON'響應對象?在Google Chrome中按F12,網絡選項卡/ XHR。 –
可能是照片不共享:)。 – 2017-10-28 22:50:07
@Danny,當然 - 我編輯了主線程。那是你想要的嗎? –