我正在为公共网站提供内容,我想知道是否会同时使用CORS和JSONP来获得最大的浏览器支持。例如,我会这样做:
<?php
// Simplified example to illustrate
if(isset($_GET['callback'])) {
header('Content-Type: application/javascript; charset=utf-8');
echo $_GET['callback'] . '(' . json_encode( ... ) . ')';
exit;
}
header('Access-Control-Allow-Origin: *');
header('Content-Type: application/json; charset=utf-8');
echo json_encode( ... );
显然,我没有使用JSONP响应发送与CORS相关的标头,因为这似乎是违反直觉的。这种方法有任何安全性或其他影响吗?
答案 0 :(得分:1)
考虑到CORS
仍然存在,我建议您更改发送数据的顺序。
application/json
回复JSONP
(IE <= 7,Opera&lt; 12或Firefox&lt; 3.5)通过这种方式,您可以兑换最安全的方法,并为不合规的客户端重新使用。