NativeScript Throwing Error响应状态:200表示URL:null

时间:2018-01-17 15:15:14

标签: json nativescript angular2-nativescript angular4-httpclient nativescript-angular

我正在使用Typeular版本2.2.2的Angular4

当我使用过滤器调用JSON时,我的网络应用程序正常运行,但当我将过滤器值称为对象时,我的NativeScript应用程序失败,但当我将过滤器值称为字符串时工作正常。

错误响应状态:URL为200:null

这项工作 https://domainname.com/api/v1/searchevents?token=057001a78b8a7e5f38aaf8a682c05c414de4eb20&filter=text&search=upcoming

如果过滤器值和搜索值是STRING,则它可以工作,而如果它们是如下对象,则不起作用

这不起作用

https://api.domainname.com/api/v1/searchevents?token=057001a78b8a7e5f38aaf8a682c05c414de4eb20&filter= { “极限”: “12”, “跳过”: “0”}&安培;搜索= { “搜索”: “”, “纬度”: “”, “经度”: “” “类别”: “”, “地址”: “”, “类型”: “即将举行的”}

我使用的代码在

之下

getData(serverUrl,type,skip_limit){

pick B
squash D
pick C
pick E

上面为API形成的网址很好,工作正常。然而错误出现错误响应状态:URL为200:null

任何人都可以帮助我解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

看起来问题是"过滤器"值是不同类型的,从你提到的工作,你的服务期望一个字符串而不是一个对象/数组。因此,当它得到一个时,它无法发送正确的响应。使用URL中的对象,您可能必须重写服务以将其作为对象读取(解析这两个属性并单独获取它们)

为简单起见,您可以将这两个变量作为URL中的两个不同变量。如下,

https://api.domainName.in/api/v1/oauth/token?limit=10&skip=0

更准确地说明你的问题中发生了什么,

1)记录确切的URL并将其发布在问题中。没人能猜到"文字"在您的第一个网址中。

2)您提到的工作网址有"令牌"作为路径的一部分,但在代码中,它是一个变量,它将具有来自" token_value"的动态值。

3)发布您的服务代码。特别是签名和输入解析部分。

答案 1 :(得分:0)

得到了解决方案: 您所要做的就是使用Typescript encodeURI()

对Filter和Search Parameters进行编码,如果它是Object或Array

var filter =' {" limit":" 12"," skip":" 0"}&#39 ;

var search =' {"搜索":"","纬度":"",&#34 ;经度":"""分类":"""地址":"" "类型":"即将"}'

var encoded_filter = encodeURI(filter);

var encoded_search = encodeURI(search);

url = this.apiUrl + serverUrl +'?token =' + token_value +'& filter =' + encoded_filter +'& search =&# 39 + encoded_search