我做了一个调用 jQueryajax
方法的 chrome 扩展:
内容脚本.js
[...]
$.ajax({
"url": "http://localhost:5000/",
"type": "PUT",
"contentType": "application/json",
"data": { "name": "random object" },
"dataType": "json"
});
[...]
在服务器端,我正在尝试获取data
属性中传递的信息:
网页.js
[...]
app.put('/', function(request, response) {
console.log(request.data);
});
[...]
但我得到undefined
了。data
应该在服务器端(Node.js + express.js )检索的属性中传递的对象如何?
我也尝试并在那里得到了很多东西,但没有任何东西看起来像我在属性console.log(request)
中传递的信息......data
编辑
我最近的尝试(基于 graydsl 的回答)对上面的代码进行了以下更改:
app.use(express.bodyParser());
之前添加的app.put...
。- 到处都变
put
了post
- 改为
request.data
_request.body.data
现在,代码在响应这样的表单时执行我想要的操作:
<form method="post" action="/">
<input name="data" type="text" value="WOO HA" />
<input type="submit" name="submit" value="submit" />
</form>
但是,如果我恢复使用post
而不是它仍然会失败put
(并且浏览器http://localhost:5000/?data=WOO+HA&submit=submit
由于某种原因而结束)
使用 ajax进行put
ting(或ing)时也会失败(参见上面的代码)。post
当我尝试使用 ajax 时,我在服务器上得到了这个:
SyntaxError: Unexpected token ILLEGAL
at Object.parse (native)
at IncomingMessage.<anonymous> (/home/shawn/.node_libraries/.npm/connect/1.8.7/package/lib/middleware/bodyParser.js:135:16)
at IncomingMessage.emit (events.js:61:17)
at HTTPParser.onMessageComplete (http.js:133:23)
at Socket.ondata (http.js:1019:22)
at Socket._onReadable (net.js:683:27)
at IOWatcher.onReadable [as callback] (net.js:177:10)