2010-01-12 2 views
1

방금 ​​asp.net을 사용하는 웹 사이트에서 꽤 큰 업데이트를 만들었습니다. 새 업데이트에서는 asp.net 웹 서비스와 함께 jquery를 대신 사용할 수 있도록 많은 코드를 변경했습니다. 많은 사용자가 브라우저에서 모든 캐시를 플러시 할 때까지 새 업데이트가 작동하지 않는다는 문제가 있습니다. 모든 사람들에게 캐시를 플러시하도록 지시하는 작업이 많기 때문에 새로운 업데이트를로드 할 때 플러시를 강제로 수행 할 수 있습니까? 나는 오류를 기록 서버 시스템에서브라우저에서 강제로 캐시 비우기

$.ajax({ 
    type: "GET", 
    url: url, 
    dataType: "json", cache: false, data: "{}", contentType: "application/json; charset=utf-8".... 

하고 다음과 같습니다 :

사용자가 문제가있는 것이 일반적인 Ajax 호출이

Error Message: There was no channel actively listening at 'http://www.domain.com/Service.svc/get?date=2010-01-12&_=1263327373122&{}'. This is often caused by an incorrect address URI. Ensure that the address to which the message is sent matches an address on which a service is listening. 

은 "_ = 1263327373122" 부분은 전혀 없어야합니다. 사용자가 캐시를 플러시하면 다시 완벽하게 작동합니다. 이 문제를 어떻게 해결할 수 있습니까?

답변

3

데이터를 보내지 않으려면 data 매개 변수를 생략하거나 data: {} (따옴표 제외)로 변경하십시오. 문자열 "{}"을 보내려고한다고 생각합니다.

cache: false을 지정했기 때문에 _ 매개 변수가 전송되었습니다.

게다가 매개 변수로 URL을 '빌드'해서는 안되며 빈 데이터 객체를 전달해야한다고 생각합니다. jQuery가 당신을 위해 그것을한다.

즉 대신

$.ajax({ 
    type: "GET", 
    url: "http://mydomain/service?date=" + mydate, 
    data: {} }); 

이이

$.ajax({ 
    type: "GET", 
    url: "http://mydomain/service", //this remains constant 
    data: {date: mydate} }); 
+0

그래서 나는 그것이 GET이 아닌 사후 경우에도 "데이터"를 사용하여 내 매개 변수를 보낼 수 있습니까? – Martin

+0

예, 이미 문자열이 아니면 쿼리 문자열로 변환됩니다. –

관련 문제