2013-07-19 2 views
0

localhost 사이트에서 JSON 응답을받는 것으로 간주되는이 코드는 제가 가지고 있습니다. 크롬에서이 URL을 탐색하면 좋은 응답을 얻을 수 있지만 HTML 페이지에서이 코드를 실행하려고하면 VS 디버그를 통해 오류가 발생합니다.자바 API jQuery를 통해 웹 API URL로부터 응답을 얻으 려 할 때 오류가 발생했습니다.

아이디어가 있으십니까?

$(document).ready(function() { 
    alert("hello"); 
    var request = $.ajax({ 
    url: "http://localhost:3157/api/Products", 
    type: "GET", 
    dataType: "json" 
    }); 
    request.done(function(msg) { 
    alert("msg is: " + msg); 
    }); 
    request.fail(function (jqXhr, textStatus) { 
    alert("Request failed: " + textStatus); 
    }); 
}); 

업데이트 - 추가 XML 출력

<ArrayOfProduct xmlns:i="http://www.w3.org/2001/XMLSchema-instance"  xmlns="http://schemas.datacontract.org/2004/07/FirstWebApi.Models"> 
    <Product> 
     <Category>Groceries</Category> 
     <Id>1</Id> 
     <Name>Tomato Soup</Name> 
     <Price>1</Price> 
    </Product> 
    <Product> 
     <Category>Toys</Category> 
     <Id>2</Id> 
     <Name>Yo-yo</Name> 
     <Price>3.75</Price> 
    </Product> 
    <Product> 
     <Category>Hardware</Category> 
     <Id>3</Id> 
     <Name>Hammer</Name> 
     <Price>16.99</Price> 
    </Product> 
</ArrayOfProduct> 
+0

어떤 오류가 발생합니까? – dievardump

+0

나는 단순히 오류 "word"를 얻는다. –

답변

0

직장에서 다른 사람에게 물어 보려고 한 후에 나는 다르게 뭔가를해야하고 "운송 불필요"라는 오류 메시지가 나타납니다. 거기에서 이유를 찾았습니다 & 솔루션 here

1

가 있는지 확인하여 url에서 responejson 형식으로되어

+0

dataType을 xml (브라우저에서 보는 방법)으로 설정하려고 시도하고 제거하려고 시도하지만 트릭을 수행하지는 않습니다. –

0

엔드 포인트에서 json을 반환해야하는 데이터 형을 json를 지정하기 위해 그렇지 않으면 json 파서가 expli를 호출 할 것이므로 구문 분석 오류가 발생합니다. 시칠리아.

Broken Demo

공지 유일한 차이점 Working Demo

는 JSON (VS HTML) 엔드 포인트이다.

dataType 속성을 제거하고 jQuery가 자동으로 알아낼 수도 있습니다.


xml이 의미 상 정확하므로 문제는 보내려는 헤더에 있어야합니다. 확인 응답의 콘텐츠 유형을 확인하는 '텍스트/XML'

Live Demo

HTML입니다

<script id='xmlData' type='text/html'> 
<ArrayOfProduct xmlns:i="http://www.w3.org/2001/XMLSchema-instance"  xmlns="http://schemas.datacontract.org/2004/07/FirstWebApi.Models"> 
    <Product> 
     <Category>Groceries</Category> 
     <Id>1</Id> 
     <Name>Tomato Soup</Name> 
     <Price>1</Price> 
    </Product> 
    <Product> 
     <Category>Toys</Category> 
     <Id>2</Id> 
     <Name>Yo-yo</Name> 
     <Price>3.75</Price> 
    </Product> 
    <Product> 
     <Category>Hardware</Category> 
     <Id>3</Id> 
     <Name>Hammer</Name> 
     <Price>16.99</Price> 
    </Product> 
</ArrayOfProduct> 
</script> 

JS

$.mockjax({ 
    url: '/testXML/', 
    responseTime: 0, 
    contentType: 'text/xml', 
    responseText: $('#xmlData').text() 
}); 

$(document).ready(function() { 
    $.ajax({ 
     url: "/testXML/", 
     type: "GET" 
    }).done(function(data, textStatus, jqXHR) { 
     alert($(data).find('Product:eq(0) > Category').text()); 
    }).fail(function (jqXhr, textStatus) { 
     alert("Request failed: " + textStatus); 
    }); 
}); 
+0

dataType을 xml (브라우저에서 보는 방법)으로 설정하려고했으나 제거하려고했지만 트릭을 수행하지 않습니다. –

+0

XML이 잘 형성되어 있습니까? 하나의 상위 노드 만 있습니까?'''는 않을 것'유효하지만 것입니다. 모든 XML은 단일 부모 노드로 래핑되어야합니다. –

+0

질문에 xml 응답을 추가해야합니다. –

관련 문제