我向服务器api发出 File "PrimeCheck.py", line 39, in <module>
result = list(map(is_prime,my_list))
File "PrimeCheck.py", line 32, in is_prime
for n in range(3, x**(0.5)+1, 2): # this skips even numbers and only checks up to sqrt(x)
TypeError: 'float' object cannot be interpreted as an intege
请求,但请求方法更改为$http POST
。
我用localhost做这一切。所以我通过邮递员做了同样的请求,一切正常
服务:
OPTIONS
答案 0 :(得分:1)
实际上,您的preflight
请求会被退回。
如果浏览器不信任您正在浏览浏览器的数据源,则首先向该服务器发送preflight
请求,如果返回200OK
,则浏览器将发送您的原始请求。
仅适用于浏览器,以及postman
等其他工具发送和预检请求,因此您的代码可能会正常运行。
如何解决问题。
GET, POST, OPTIONS, PUT
的标头添加到请求的资源。答案 1 :(得分:-2)
是的,它看起来像是个问题。
请尝试以下方法之一:
试试这个:
app.config(['$httpProvider', function ($httpProvider) {
//Reset headers to avoid OPTIONS request (aka preflight)
$httpProvider.defaults.headers.common = {};
$httpProvider.defaults.headers.post = {};
$httpProvider.defaults.headers.put = {};
$httpProvider.defaults.headers.patch = {};
}]);
从 yeoman / gulp 设置的 _app.js 文件中删除x-auth*
设置。
参考:AngularJS performs an OPTIONS HTTP request for a cross-origin resource