2013-12-17 7 views
1

임이를 위해AJAX : 잘못된 JSON 응답

http:xxx.myserver.com/myfolder/example.json

$.ajax({ 
    url:"http:xxx.myserver.com/myfolder/example.json", 
    dataType:"json", 
    success:function(data, status) { 
     alert("success"+data+":::"+status); 
    }, 
    error:function(request, status, error) { 
     alert("Error:"+JSON.stringify(request)+":::"+status+"::"+error); 
    }, 
}); 

내가 좀 교체라는 솔루션을 봤

Error:{"readyState":0,"responseText":"","status":0,"statusText":"error"}:::error::

아래와 같은 출력을 얻을 사용하여 내 JSON 데이터를 읽어 Ajax를 사용하여 내가 바꾸면 jsonp에게 json을 보내라.

dataType:json to dataType:jsonp

나는

Error{"readyState":4,"status":200,"statusText":"success"}:::parsererror::Error: jQuery110107852220840286463_1387290139272 was not called

그것은 전혀 성공 기능을 입력하지 않습니다 같은 결과를 얻었다.

제발 누구나이 솔루션을 제공하십시오. 미리 감사드립니다.

+3

브라우저 개발자 콘솔을 사용하여 서버 응답을 직접 검사하십시오. – Pointy

+3

질문 제목을 사용하십시오. – undefined

+3

웹 서비스에서 지원하는 경우 JSONP 만 사용할 수 있으며 스크립트가 ajax URL이 아닌 다른 도메인에서 호스팅되는 경우에만 필요합니다. (다른 경우 http://en.wikipedia.org/wiki/Same-origin_policy 참조) – xec

답변

1

나는 내 문제에 대한 해결책을 가지고있다.

귀하의 JSON이 형식 예에 있어야 : 나는

$.ajax({ url:"http:xxx.myserver.com/myfolder/example.json?callback=?", dataType:"jsonp", async: false,     jsonpCallback: 'jsonCallback', contentType:"application/json", success:function(data, status) { alert("success"+JSON.stringify(data)); }, error:function(request, status, error) { alert("Error:"+JSON.stringify(request)+":::"+status+"::"+error); }, }); 

jsonCallBack

에 내 대답을 변경 jsonCallback({"sites":[{"siteName": "JQUERY4U","domainName": "http://www.jquery4u.com"},{"siteName": "BLOGOOLA","domainName": "http://www.blogoola.com"},{"siteName": "PHPSCRIPTS4U","domainName": "http://www.phpscripts4u.com"}]});

나는 성공의 함수로 얻을 내 JSON 응답을 얻을. 당신의 도움을 주셔서 감사합니다. 이것은 도메인 간 문제 때문입니다.