jquery - Get JSON via javascript [Cross-Domain] -
please me following situation:
there page p1.aspx 1 button:
<button id="btn1" onclick="btnclick();">button</button> <script type="text/javascript"> $('#btn1').click(function () { $.getjson("http://localhost/p2.aspx", function (data) { $.each(data, function (i, field) { alert(field); }); }); }); </script>
above how want json text via javascript.
web application http://localhost/p2.aspx
redirected http://localhost/p3.aspx
inside. , page http://localhost/p3.aspx
again redirected http://localhost/p2.aspx?code=1
.
code=1
is value want read in javascript code. it's not works.
in p2.aspx generate json data following
response.clear(); response.contenttype = "application/json; charset=utf-8"; response.write(jsonstring); response.end();
after can not read json data via javascript. if put http://localhost/p2.aspx
via web browser json data on page.
you need use jsonp
if want work.
so script should take account callback
parameter:
response.clear(); string callback = request["callback"]; if (!string.isnullorempty(callback)) { response.contenttype = "application/javascript; charset=utf-8"; response.write(string.format("{0}({1})", callback, jsonstring)); } else { response.contenttype = "application/json; charset=utf-8"; response.write(jsonstring); } response.end();
and on client:
$.getjson("http://localhost/p2.aspx?callback=?", function (data) { ... });
notice how callback
query string parameter set ?
. jquery translate request looks this:
http://localhost/p2.aspx?callback=jquery123456789....
and server side script should of course return jsonp
json
string wrapped callback name:
jquery123456789....({"code":1})
also make sure jsonstring
variable used in code actual json string (as name suggests). because have shown in question (code=1
) far being json.
Comments
Post a Comment