getJSON工作但反馈无效(parseerror)

时间:2014-08-10 19:15:24

标签: jquery getjson

我正在为智能家居组建一个小型内部网站点,并希望通过网页切换灯光。有一台PC可以解释像这样的http请求:

http://username:password@10.0.1.xx/cgi-bin/scada-remote/request.cgi?m=json&r=grp&fn=write&alias=1/1/20&value=true

这就像魅力一样,根据智能家居总线的硬件控制(至少部分)的文档编写。到目前为止一切都很好。

现在我想用JavaScript触发这个请求。据我所知,经过数小时的搜索和尝试,我需要使用“getJSON”#39;因为跨站点(是那个词?)的性质请求。我还需要添加' callback =?'到URL,否则它没有工作,即灯不会切换。功能:

function testLight(lightState) {
 $.getJSON("http://username:password@10.0.1.xx/cgi-bin/scada-remote/request.cgi?m=json&r=grp&fn=write&alias=1/1/20&value=" + lightState + "&callback=?",
    function(response) {
        alert('hi');
    });

此功能有效,但回调功能不会触发。然后我将函数重写为简单的ajax:

$.ajax({
      url: 'http://username:password@10.0.1.xx/cgi-bin/scada-remote/request.cgi?m=json&r=grp&fn=write&alias=1/1/70&value=" + lightState + "&callback=?',
      dataType: 'json',
      success: function(result){
        alert("token recieved: " + result.token);
      },
      error: function(request, textStatus, errorThrown) {
        alert('error: ' + textStatus);
      },
      complete: function(request, textStatus) { //for additional info
        alert('complete: ' + request.responseText);
        alert('complete: ' + textStatus);
      }
    });

我得到"错误:parseerror","完成:未定义"并且"完成:parseerror"作为上述功能的反馈。但是灯正确切换。

粘贴网址

http://username:password@10.0.1.xx/cgi-bin/scada-remote/request.cgi?m=json&r=grp&fn=write&alias=1/1/20&value=true

进入浏览器导致切换灯和单词' true'在浏览器窗口中。所以反馈似乎到了。

我在回调函数没有触发的getJSON函数中做错了什么,或者更确切地说,我得到了解析错误'并且' undefined'反馈

非常感谢和最好的问候

0 个答案:

没有答案