WCF服务与JSONP响应jQuery问题

时间:2011-06-28 06:27:13

标签: jquery ajax wcf json jsonp

我是JSONP和Ajax / JQuery的新手。我搜索了高低的答案,但在那里找不到任何东西。

我有一个自托管的WCF服务设置,其中WebHTTPBinding启用了WebScriptEnablingBehavior。我的服务正在运行,我可以转到我的网址“http://e-invizion:8801/csecontrol/v1/GetTestString”,Firefox会提示下载文件,所以我在记事本中打开该文件,内容为“{”d“:”2011年6月28日12: 10:23 AM“}”,它只是从服务器返回的当前日期和时间。所以这似乎工作得很好。

如果我查询:

$.ajax({
    url: "http://e-invizion:8801/csecontrol/v1/GetTestString&callback=?",
    dataType: "jsonp",
    type: "GET",
    cache: false
    },
    function(data){
        console.log(data);
    });    

这会被吸入页面的头部,每次按下按钮都会出现一个新的:

<script async="" src="http://e-invizion:8801/csecontrol/v1/GetTestString&
callback=jQuery16102834440269703241_1309242056366?_=1309242057876">
<HTML><HEAD><STYLE>snip...</STYLE>
<TITLE>Service</TITLE></HEAD><BODY>
<DIV id="content">
<P class="heading1">Service</P>
<BR/>
<P class="intro">Endpoint not found.</P>
</DIV>
</BODY></HTML>
</script>

如果我查询:

$.getJSON("http://e-invizion:8801/csecontrol/v1/GetTestString?callback=?", getNowPlayingResponse);

我在Firebug控制台中得到了这个:

invalid label
    {"d":"6\/28\/2011 1:23:21 AM"}

我正试图让这个回调为JSONP工作,但我只是对我所缺少的东西感到茫然。

1 个答案:

答案 0 :(得分:1)

好像你的网址错了

$.ajax({
    url: "http://e-invizion:8801/csecontrol/v1/GetTestString?callback=?",
    dataType: "jsonp",
    type: "GET",
    cache: false
    },
    function(data){
        console.log(data);
    });    

我将GetTestString&callback...更改为GetTestString?callback... 希望这是问题