0

我无法使用下面的 kony.net.httpRequest 协议连接到任何服务器。我总是收到“服务器错误”的状态文本。

function test(){
var xmlhttp = new kony.net.HttpRequest();
var url = "http://httpbin.org/get";
xmlhttp.open(constants.HTTP_METHOD_GET, url);
xmlhttp.send();
xmlhttp.onReadyStateChange = function(){ sunsetCallback(xmlhttp) };
return;
}
function sunsetCallback(xmlhttp){
alert(xmlhttp.statusText);
if (xmlhttp.responseType==constants.HTTP_RESPONSE_TYPE_DOCUMENT){
    sunrise.lblSunrise.text=xmlhttp.response;
}
sunrise.lblSunset.text="ayy lmao";
xmlhttp.suspend();
return;
}

欢迎任何帮助!(我尝试将 onReadyStateChange 线放在 open 的上方和下方,但不管 sunsetCallback 函数是否执行。)

4

2 回答 2

2

问题是 iOS 不再允许应用程序在不编辑 plist 的情况下发送获取请求。当我将请求更改为 https 并将应用程序传输安全设置字典添加到 plist 时,问题得到了解决。

于 2016-06-16T16:20:18.903 回答
0

在对响应进行任何操作之前,您需要检查请求的状态。一旦状态为constants.HTTP_READY_STATE_DONE,您就可以执行操作。

请检查下面的工作代码:

function searchData(){
  srchKey = frmMain.txtData.text;
  var request = new kony.net.HttpRequest();
  request.onReadyStateChange=httpCallbackHandler;
  request.open(constants.HTTP_METHOD_GET, "http://yoururlorapi.com/search/"+srchKey);
  request.setRequestHeader("x-header-appsecret",appsec); //Our own data
  request.send();
}

function httpCallbackHandler(){
  if(this.readyState == constants.HTTP_READY_STATE_DONE){     
    //alert(JSON.stringify(this.response));
    frmSearchRes.segRes.setData(this.response.searchInfo);
    frmSearchRes.show();
  }
}

希望这可以帮助!

于 2016-12-04T05:32:35.007 回答