【发布时间】:2018-05-19 15:52:17
【问题描述】:
我正在尝试使用 Transcrypt 的 fetch API。
来源:
headers = {
"Access-Control-Request-Method": "GET",
"Access-Control-Request-Headers": "origin, x-requested-with",
"Origin": "https://bar.com/"
}
args = {
"method":"OPTIONS",
"headers":headers
}
fetch("https://foo.com/",args).then(
lambda response: print(response),
lambda err: print(err)
)
编译为:
var headers = dict ({'Access-Control-Request-Method': 'GET', 'Access-Control-Request-Headers': 'origin, x-requested-with', 'Origin': 'https://bar.com/'});
var args = dict ({'method': 'OPTIONS', 'headers': headers});
fetch ('https://foo.com/', args).then ((function __lambda__ (response) {
return print (response);
}), (function __lambda__ (err) {
return print (err);
}));
打印:
TypeError: Failed to execute 'fetch' on 'Window': Iterator is not an object.
如果我从编译的代码中删除dicts,它就会运行。
如何编译为正确的 Javascript 对象而不是 dict?
【问题讨论】:
-
您的方法只能包含
GET或POST,不允许OPTIONS。 -
我不确定
dict是如何创建和返回的,但args需要是一个javascript 对象。{method:'GET', headers: {}} -
这是我的问题,为什么 Transcrypt 编译为 dict 而不是正确的对象?
-
在获取之前,请执行
console.log(args)以查看其格式是否正确 -
编译后的代码是错误的,如果我删除
dict它运行
标签: javascript python dictionary object transcrypt