2014-01-07 71 views
1

jQuery有用於與GET請求發送數據的支持:WCF服務,使用的參數下載文件,發送的GET請求數據

jQuery.get(url [, data ] [, success(data, textStatus, jqXHR) ] [, dataType ]) 

是否有可能編寫支持在GET請求接收數據的WCF服務?

一個例子非常感謝。

更新:網址長度超過了IE8的限制,IE8是一個要求。我需要傳遞很多參數,基本上是一個大JSON。我做了什麼解決方法,這是做一個POST請求,存儲參數在服務器端,然後設置window.location到服務位置調用GET請求,將下載我的文件。但是,我想要避免POST請求和存儲服務器端的文件,因爲我在分佈式系統中,而且我有很多這方面的問題。當然

+0

檢出REST WCF服務或WebAPI。 – zimdanen

+0

我認爲這可能會有所幫助。 http://stackoverflow.com/questions/18051439/how-to-call-wcf-service-using-jquery-ajax-functions – Mutant

+0

我不能使用REST,也不是WebAPI,現在不能改變實現,但它是好的知道未來。 –

回答

2

,您可以:

[OperationContract] 
[WebInvoke(
    Method = "GET", 
    UriTemplate = "SomeUrl?param1={param1}&param2={param2}" 
)] 
string SomeOperation(string param1, string param2); 

然後:

$.get('SomeService.svc/SomeUrl?param1=SomeValue&param2=AnotherValue', function(response) { 
    console.log(response); 
}); 

或者:

$.get('SomeService.svc/SomeUrl', {param1: 'SomeValue', param2: 'AnotherValue'}, function(response) { 
    console.log(response); 
}); 
+0

我會嘗試看看第二個選項是否有效 –

+0

參數大小是否有限制?這對我來說是問題的根源 –

+0

如果數據在URL中格式化,在Internet Explorer中最大限制爲2083.但是,在Firefox(80K +字符)和Safari(100K +)中,允許的最大長度實際上很大。我敢打賭Chrome採用與Firefox和/或Safari相同的方式。 (來源:http://boutell.com/newfaq/misc/urllength.html) – ajawad987