我慢慢实现jsonp与json相比,因为我读jsonp方法更安全,它可以防止CORS。所以在我的服务器端,jsonp应该是什么样的?
我为json做的只是
$arr = array();
$arr[] = {'a'=>'apple','b'=>'ballon'}
json_encode($arr);
如果是jsonp怎么办?
答案 0 :(得分:3)
JSONP不会“阻止CORS”,JSONP是一种解决方法,通过明确要求服务器与Javascript协作来启用来自第三方域的GET请求。有效的方式是请求Javascript传递它想要执行的回调函数的名称。然后,服务器通过在此回调函数中包装其响应来进行协作。当此响应作为嵌入代码返回到浏览器时,将使用来自服务器的数据执行回调。
如果请求提供回调名称foo
,则响应应如下所示:
foo({"a": "apple", ...});
所以:
printf('%s(%s);', $_GET['callback'], json_encode($arr));