I understand that jsonp is a technique to get around the same origin policy. You basically refer to your json serving server endpoint in a script tag, because script tags are exempt from the SO policy.
My question is: Assuming a server has an endpoint that serves up json, are there any modifications necessary on the server to make use of jsonp in the clie开发者_开发技巧nt?
I think no, but want to be sure....
Yes, JSONP is slightly different when it renders, so your server needs to support it.
JSON looks like this:
{ "name": "value" }
Whereas JSONP looks like this:
functionName({ "name": "value" });
If whatever you're using supports it you're covered, but it's not the same as supporting just JSON. When the server gets a request, for example: http://example.com/json?callback=functionName
, the above is what you should render, because how it looks in the page is this:
<script type="text/javascript" src="http://example.com/json?callback=functionName"></script>
This means something that runs needs to be returned, as an illustration, this is valid:
<script type="text/javascript">
functionName({ "name": "value" });
</script>
If your server didn't support JSONP it would effectively be this:
<script type="text/javascript">
{ "name": "value" }
</script>
...and you'll get syntax errors, since that's not valid JavaScript.
精彩评论