如何在angularjs中传递一个JSON对象给一个资源
How to pass in a JSON object to a resource in angularjs
我想使用一个web服务,在一个POST请求中接受JSON对象(对象绑定两个数组),并返回一个JSON对象数组。
我现在想从我的AngularJS发送请求到webservice。下面是我的代码:
wellApp.factory('Search', ['$resource',function($resource){
return $resource('/filetables/searchdata/:tagSearchInput',
{
},
{
searchData:{
method:'POST',
isArray: true,
params:{ tag: '@tagSearchInput.tag',
details: '@tagSearchInput.details'
}
}
})
}])
function myWellsCtrl($scope,$resource, Wells, Tags, Search) {
$scope.wellSearchResult = Search.searchData({tag: ["TypeOfWell"],
details: ["Vertical"]});
};
如果我这样做,我在服务器端得到一个NullPointerException,这意味着我传递的参数被作为空传递。
我如何传入这个对象,使服务器将它们解释为包含两个数组的对象。我是AngularJS的新手,不能理解分配传入参数的@符号。如果这里有人能帮我一下就太好了。
您不需要在searchData中包含参数,因为JSON将在POST请求的正文中发送。尝试从searchData中删除它们。然后在你的控制器中,尝试像这样调用你的服务:
Search.searchData({}, {tag: ["TypeOfWell"], details: ["Vertical"]})
注意{}作为第一个参数,这是您的请求的参数。第二个{}用于有效负载。这将在请求有效负载中发送JSON,而不是作为参数。如果不适合你,请告诉我。我曾经做过和你类似的事情,这种方法对我很有效。
您没有提到您使用的是哪个服务器端。但是,您可能需要做的第一件事是设置HTTP Header内容类型。我通常将其全局设置在$http对象上,如下所示:
$http.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';
使用默认的内容类型头,表单参数不会作为表单参数附加到请求中,并且不能在服务器端代码中作为表单参数访问它们。
其次,:
{
tag: '@tagSearchInput.tag',
details: '@tagSearchInput.details'
}
不是一个有效的JSON对象。属性名必须用双引号括起来。在这里,它们都在none中。属性值也必须用单引号括起来;这里用单引号括起来。
我认为应该是一个有效的JavaScript对象;但它不是JSON。你可以在这里调整:
{
"tag": "@tagSearchInput.tag",
"details": "@tagSearchInput.details"
}
我写了一篇关于我把AngularJS和ColdFusion集成在一起的经验的博文。我一直在做的是将我的对象转换为JSON字符串,然后再传递它们。然后服务器端将反序列化JSON字符串。
这是一个很棒的帖子,类似于我的,那是PHP的焦点
- 根据id将json数组组合为一个json数组
- 处理一个JSON文件;完全相同的副本不是
- 使用来自不同异步函数的响应创建一个json对象
- 想要使用Javascript将一个JSON对象拆分为多个JSON对象
- JSON:在另一个JSON对象中重用JSON对象
- 我需要迭代一个JSON数组——不知道如何做到——已经搜索过了,但仍然可以'我一点也不知道
- I'我在页面加载时将整个$_SESSION变量放入一个json对象中.虽然这对我有效,但这是一个好的做法吗
- 创建一个 json cookie 数组
- NodeJS应用程序只显示第一个JSON对象.为什么?
- 从另一个JSON对象创建JSON对象
- 用javascript附加一个json文件
- 如何将两个json对象合并为一个json
- 将json作为子文档合并到另一个json中
- 其中一个json.dumps值为null
- ExtJS DataView只显示最后一个JSON元素
- 如何在javascript中为每个JSON对象添加一个JSON数组
- 从URL获取一个JSON文件并显示
- 我有一个json文件,当我点击按钮时
- 使用 javascript 为 c3js 创建一个 json 对象
- 从 javascript 打开一个 JSON 文件