我正在嘗試使用JavaScript訪問與http://pypi.python.org/pypi/<package_name>/json
形式的Python包對應的JSON metadata。區分大小寫的網址觸發CORS錯誤
我的代碼看起來是這樣的:
var name = $('#name').val();
var url = 'http://pypi.python.org/pypi/' + name + '/json';
$.getJSON(url, function(result){
console.log(result);
});
的問題是,對於JSON的URL是大小寫敏感的,因此,例如,pypi.python.org/pypi/flask/json被重定向到的PyPI .python.org/PyPI中/瓶/ JSON因爲包「瓶」需要有一個資金F.
因此,如果name
是燒瓶,我得到的錯誤XMLHttpRequest cannot load https://pypi.python.org/pypi/flask/json. Redirect from 'https://pypi.python.org/pypi/flask/json' to 'https://pypi.python.org/pypi/Flask/json' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.
任何想法如何正確地訪問json即使包名也有wro大寫?
似乎與pypi的問題重定向時沒有正確設置標題。 JSONP也不起作用,因爲'https://pypi.python.org/pypi/Flask/json?callback = f'按預期工作('f({...})'),但是'https:/ /pypi.python.org/pypi/flask/json?callback = f「重定向到大寫字母F,並且不迴應回調(它發送'{...}') – Artyer