Javascript 如何使用jquery读取简单的json结果,以及如何发布新的json结果
我构建了一个生成JSON的WCF服务。我想制作一个使用此Web服务的外部网站。目前,我正在通过IIS通过LAN执行WCF服务,因此我可以通过转到 我试图学习一些json,并从我的服务中获得一些结果 例如,如果我想使用此方法:Javascript 如何使用jquery读取简单的json结果,以及如何发布新的json结果,javascript,jquery,json,wcf,Javascript,Jquery,Json,Wcf,我构建了一个生成JSON的WCF服务。我想制作一个使用此Web服务的外部网站。目前,我正在通过IIS通过LAN执行WCF服务,因此我可以通过转到 我试图学习一些json,并从我的服务中获得一些结果 例如,如果我想使用此方法: [OperationContract] [WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json, BodyStyle
[OperationContract]
[WebInvoke(Method = "GET",
ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Wrapped,
UriTemplate = "json/{id}")]
string JSONData(string id);
我要去
结果我得到:
{“JSONDataResult”:“您请求了产品123”}
现在,我尝试使用JQuery语句getJSON来接收这个结果。但我没有看到任何结果
我的问题是如何获得这些简单的数据
其次,我如何将数据(使用javascript)发布回wcf服务?使用json也可以吗
-编辑-:
我现在已经更新了我的代码,并将其放入位于
之间的文档准备功能中。。。。在我的页面上:
$.getJSON(
'http://myownaddress/blabla.svc',
function(data)
{
alert(data.JSONDataResult);
});
但这不会给警报带来结果。它甚至没有发出警报。。除此之外,在函数中,我需要给出一个id参数,例如123(查看上面的文本),我不需要将其也放在函数中吗?您有这样的代码吗
$.getJSON(
'http://myownaddress/blabla.svc/',
function(result) {
alert(result.JSONDataResult);
}
);
记住
getJSON
不会立即返回数据,您必须在回调函数中使用结果。您有这样的代码吗
$.getJSON(
'http://myownaddress/blabla.svc/',
function(result) {
alert(result.JSONDataResult);
}
);
请记住
getJSON
不会立即返回数据,您必须在回调函数中使用结果。要获取数据,请使用getJSON()
:
要发布数据,您可以使用:
或者(如果您需要更多控制):
您还可以使用ajax来获取数据,而不是使用getJSON
方法
更新:
尝试使用ajax方法,因为它提供了更多的控制:
$.ajax({
type: 'POST',
url: url,
data: data,
success: success,
dataType: dataType
});
$.ajax({
type: 'GET',
url: "http://myownaddress/blabla.svc/json/123",
success: function(data){alert(data)},
dataType: "json",
complete: function(data){alert(data)},
error: function(jqXHR, textStatus, errorThrown){alert(errorThrown)}
});
此外,如果您使用firefox,请查看扩展,它将大大帮助您。
如果您使用chrome,则使用。获取数据使用
getJSON()
:
要发布数据,您可以使用:
或者(如果您需要更多控制):
您还可以使用ajax来获取数据,而不是使用getJSON
方法
更新:
尝试使用ajax方法,因为它提供了更多的控制:
$.ajax({
type: 'POST',
url: url,
data: data,
success: success,
dataType: dataType
});
$.ajax({
type: 'GET',
url: "http://myownaddress/blabla.svc/json/123",
success: function(data){alert(data)},
dataType: "json",
complete: function(data){alert(data)},
error: function(jqXHR, textStatus, errorThrown){alert(errorThrown)}
});
此外,如果您使用firefox,请查看扩展,它将大大帮助您。
如果你使用chrome,那么就使用。你为什么要更改你的url $.getJSON( 'h t t p://myownaddress/blabla.svc'==>'h t t p://myownaddress/blablabla.svc/123', 功能(数据) { 警报(data.JSONDataResult);
}); 为什么要更改url $.getJSON( 'h t t p://myownaddress/blabla.svc'==>'h t t p://myownaddress/blablabla.svc/123', 功能(数据) { 警报(data.JSONDataResult);
}); 为了使用Jquery从网站外部的WCF服务获取json数据,您需要使用JSONP 您可以按如下所示执行呼叫:
$.ajax({
url: "http://myownaddress/blabla.svc/",
dataType: "jsonp",
type: "GET",
timeout: 10000,
data: null,
jsonpCallback: "MyCallback",
success: function (data, textStatus, jqXHR) {
alert(action.toLowerCase());
},
error: function (jqXHR, textStatus, errorThrown) {alert('error is:' + errorThrown);
},
complete: function (jqXHR, textStatus) {alert('complete');
}
});
当您希望使用Javascript执行跨域调用时,可以使用JSONP
此外,您的WCF服务应兼容处理JSONP调用,方法是使用URL中指定的回调方法将结果注入响应流。为了使用Jquery从网站之外的WCF服务获取json数据,您需要使用JSONP 您可以按如下所示执行呼叫:
$.ajax({
url: "http://myownaddress/blabla.svc/",
dataType: "jsonp",
type: "GET",
timeout: 10000,
data: null,
jsonpCallback: "MyCallback",
success: function (data, textStatus, jqXHR) {
alert(action.toLowerCase());
},
error: function (jqXHR, textStatus, errorThrown) {alert('error is:' + errorThrown);
},
complete: function (jqXHR, textStatus) {alert('complete');
}
});
当您希望使用Javascript执行跨域调用时,可以使用JSONP
另外,您的WCF服务应该兼容处理JSONP调用,方法是使用URL中指定的回调方法将结果注入响应流。我需要在函数中放入什么(“data”或“result”只是一个变量的名称,它将包含从服务器返回的数据。您可以随意命名它。我需要在函数中添加什么(“data”或“result”只是一个变量的名称,它将包含从服务器返回的数据。您可以随意命名它。它不返回警报,我已将带“”的.getjson放在document ready函数中,但它不起作用,我不需要在某个地方插入参数id吗?“h不是p”是错误的,应该是“http”没有空格。若要传递参数,需要将其添加到url:“是的,我知道..我用空格做的,所以stack不会给我错误,但也不起作用,它不会显示任何东西唯一起作用的是:flickr的最后一个例子,我得到了图像…但这不起作用..你是否更改了url以包含id(“)?尝试使用firebug或chrome developer工具查看发生了什么。它不会返回警报,我已将带“”的.getjson放在document ready函数中,但它不起作用,我不需要在某个地方插入参数id吗?“h t p”是错误的,应该是不带空格的“http”。要传递参数,需要将其添加到url:“是的,我知道..我用空格做的,所以堆栈不会给我错误,但它也不起作用,它不会显示任何东西唯一起作用的是:flickr的最后一个例子,我得到了图像…但这不起作用..你是否将url更改为包含id(“)?尝试使用firebug或chrome developer工具来查看发生了什么。你是什么意思?我的原始url是h t p://myownaddress/blablabla.svc,但如果我想使用JsonData方法,那么我使用h t p://myownaddress/blablablabla.svc/json,如果我想传递id=123,那么我就使用h t p://myownaddress/blablablablablabla.svc/json/123。你需要在$.getJSON中使用该url方法。否则它将返回404。你能检查你的HTTP状态吗?使用xhr或fiddler之类的工具吗?你是什么意思?我的原始url是htp://myownaddress/blablabla.svc,但是如果我想使用JsonData方法,那么我就使用htp://myownaddress/blablablabla.svc/json,如果我想传递id=123,那么我就不使用htp://myownaddress/blablablablabla.svc/json/123在$.getJSON方法中需要该url,否则它将返回404