2010-07-26 3 views
0

다른 웹 사이트에 JSON 형식을 저장하려면 어떻게해야합니까? 아래 코드를 작성했습니다. JSON 서버에서 정보를 검색하려고 시도했지만 아무 것도 반환하지 않았습니다.다른 웹 사이트에 JSON 형식을 저장하려면 어떻게해야합니까?

JSON 서버에

<%@ Page Language="C#" %> 
<%@ Import Namespace="System" %> 
<script runat="server"> 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     //Response.ContentType = "application/json; charset=utf-8"; 
     Response.ContentType = "application/x-javascript; charset=utf-8"; 
     Response.AddHeader("Cache-Control", "no-cache"); 
     //Response.Expires = 0; 
    // Response.AddHeader("content-disposition", "attachment;filename=" + Guid.NewGuid().ToString("N") + ".js"); 
    } 
</script> 
({ 
'color': 'blue', 
      'animal': { 'dog': 'friendly' } 
}) 

호출 JSON 서버에

var testurl_a = "http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=?" 
var testurl_b = "http://www.xxxxxx.com/myaccount/jsonserver.aspx?tags=cat&tagmode=any&format=json&jsoncallback=?" 

$.getJSON(testurl_b, function (data) { 
    alert("JSON Data from testurl_b"); //IS NOT WORKING 
}); 

$.getJSON(testurl_a,function (data) { 
     alert("JSON Data from testurl_a Result--->>>"+ data.title); //IS WORKING 
}); 
서버 측의 JSON 생성이처럼 JSONP protocol을 구현해야
+0

이 JSON이 (' "') 및 단일하지 따옴표 ('') 일부 JSON 통역 따옴표 경우 실패 할 수 있습니다 따옴표를 사용한다는 것을 주목해야한다. – mattbasta

+0

브라우저에 요청 (http://www.JSONServer.com/myaccount/jsonserver.aspx)을 넣으십시오. 무엇을 얻으시겠습니까 –

+0

와우, 약 6 명이이 형식을 수정하기 위해 뛰어 들었습니다. 조건, 말하려는 것. –

답변

2

:

<%=Request.QueryString["callback"]%>({ 
"color": "blue", 
      "animal": { "dog": "friendly" } 
}); 
+0

클라이언트와 서버 모두 제대로 작동하려면 JSONP를 구현해야합니다. – mattbasta

+0

스크립트를 복사하여 붙여 넣으면 사람이 작동하지 않습니다. – darwin

+1

@darwin 대신 <% = Request.QueryString [ "jsoncallback"] %>'를 시도하십시오. URL에 문자열 "callback =?"이 포함되어 있으면 – mattbasta

0

이유를 그 너 내가 답장을 못 받고있어. 크로스 도메인 문제 때문입니다. 이 문제를 해결하려면 대신 JSONp을 사용하십시오.

<%@ Page Language="C#" %> 
<%@ Import Namespace="System" %> 
<script runat="server"> 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     //Response.ContentType = "application/json; charset=utf-8"; 
     Response.ContentType = "application/x-javascript; charset=utf-8"; 
     Response.AddHeader("Cache-Control", "no-cache"); 
     //Response.Expires = 0; 
    // Response.AddHeader("content-disposition", "attachment;filename=" + Guid.NewGuid().ToString("N") + ".js"); 
    } 
</script> 
callback({ 
'color': 'blue', 
      'animal': { 'dog': 'friendly' } 
}) 

그리고 클라이언트 :

<!DOCTYPE html> 
<html> 
<title>Test</title> 
<head> 
    <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script> 
</head> 
<body> 
<script type="text/javascript"> 
<!-- 
function callback(data) { 
    // Your callback code goes here. 
} 
--> 
</script> 
<script type="text/javascript" src="http://www.JSONServer.com/myaccount/jsonserver.aspx?tags=cat&tagmode=any&format=json&jsoncallback=?"></script> 
</body> 
</html> 
+0

URL에서 요청은 jQuery에 의해 JSONP로 자동 처리됩니다. 물론 그는 여전히 그의 처리기에서 이것을 처리해야합니다. –

+0

나는 그것을 얻었다. 그냥 json 형식 단순히 데이터 형식에서 (및) 제거하려면 변경하십시오. 왜 그런지 모르지만이 규칙을 고수 할 것입니다. – darwin

관련 문제