【发布时间】:2013-03-04 13:02:05
【问题描述】:
我有一个简单的表单,我可以在其中使用 Asana 的 API 成功创建一个新项目
<form action="https://app.asana.com/api/1.0/projects" id="newProject" method="post" name="myform">
<input id="name" name="name" type="text" value="">
<input id="workspace" name="workspace" type="text" value="498346170860">
<input id="new" type="submit" value="Send">
</form>
这很好用。创建了一个项目,并在浏览器窗口中返回了 json 输出。
但是当我尝试使用 .post .ajax 方法时,我得到“请求数据必须是 JSON 对象,而不是 null”。例如(coffeescript):
$("form").submit ->
$.post $(this).attr("action"), $(this).serialize(), ((jsonData) ->
console.log jsonData
), "json"
【问题讨论】:
-
那是跨域的,所以你需要使用
jsonp或者在服务器端有某种可以向外部域发出请求的本地代理。 -
或者你可以用所有参数向你的服务器发出ajax请求,并通过你的服务器发出API请求
-
假设我禁用了浏览器安全等。它仍然无法工作?有没有办法提交上面的 html 表单,但在打开新标签页/页面之前捕获服务器的响应?
-
另外,Asana api 不支持 jsonp。 ://
标签: jquery ajax json forms post