我試圖使用Gumroad API作爲Wordpress插件,並試圖瞭解如何進行任何調用,GET在我的情況。JSONP - 「SyntaxError:missing; before statement」或「Cross-Origin Request Blocked」
我搜索了很多關於堆棧溢出的代碼示例,但仍然無法運行它沒有任何錯誤。
Plain JS或jQuery.ajax是可以接受的。 我的jQuery版本是1.12.4
當我使用JSNOP時,我得到了firefox webdev工具中的響應,但仍然在JS中出現錯誤,因爲API返回JSON(如docs中所述)。
我嘗試的代碼變化的數字:
代碼1
jQuery.ajax({
dataType: 'jsonp',
url: 'https://api.gumroad.com/v2/products',
data: {
'access_token': '676234257caeb63ca7683c39d14e0091387a1a36af0c2135f989d0fd84ffc0c5'
},
success: function(data){
console.log(data);
},
error: function(d){
console.log(d);
}
});
代碼2
jQuery(document).ready(function() {
var url = 'https://api.gumroad.com/v2/products/';
url += '?method=getQuote';
url += '&format=jsonp';
url += '&lang=en&';
url += 'jsonp=myJsonMethod';
url += '&?callback=?';
url += '&access_token=676234257caeb63ca7683c39d14e0091387a1a36af0c2135f989d0fd84ffc0c5';
jQuery.getJSON(url);
});
function myJsonMethod(response){
console.log (response);
}
但誤差總是相同的:
錯誤:
SyntaxError: missing ; before statement
響應:
{
"success": true,
"products": [{
"name": "Test",
"url": "https://s3.amazonaws.com/gumroad/attachments/1295292066926/b81638b60726496a98e63d2cc7d80075/original/IMG_09032017_123025.png",
"preview_url": "https://static-2.gumroad.com/res/gumroad/1295292066926/asset_previews/a4a204f68be7087dd360a142e620728e/retina/Color_Wheel.png",
"description": "\n\u003cp\u003eOffer test\n\n\u003c/p\u003e\n",
"customizable_price": false,
"webhook": null,
"require_shipping": false,
"custom_receipt": "",
"custom_permalink": null,
"subscription_duration": null,
"id": "MmaHg-V0-uqWW4T2W_-LLw==",
"custom_product_type": null,
"countries_available": [],
"price": 1000,
"currency": "usd",
"short_url": "https://gum.co/qiHIX",
"formatted_price": "$10",
"published": true,
"shown_on_profile": true,
"file_info": {
"Size": "187 KB",
"Resolution": "1080p"
},
"max_purchase_count": null,
"deleted": false,
"custom_fields": [],
"custom_summary": "",
"variants": [],
"sales_count": 0,
"sales_usd_cents": 0,
"view_count": 6
}]
}
請求的URL
https://api.gumroad.com/v2/products?callback=jQuery112409655243732650752_1495261525390&access_token=676234257caeb63ca7683c39d14e0091387a1a36af0c2135f989d0fd84ffc0c5&_=1495261525391
我不能使用JSON請求類型becouse其病程另一個錯誤的:
Cross-Origin Request Blocked:
The Same Origin Policy disallows reading the remote resource
at https://api.gumroad.com/v2/products.
(Reason: CORS header ‘Access-Control-Allow-Origin’ missing).
非常感謝您的任何建議!
是的,它的工作原理!非常感謝!你爲我節省了大量的時間。 小小的更正:最後你應該使用JSON.parse(數據)來訪問數據。 –
我只是爲了測試目的而使用console.log。 –
是的,我明白了,通過這個小小的修正,代碼片段已經完成並且完全可行。謝謝! –