0
我有一段時間用JS和PHP構建一個簡單的API。首先,我在腳本教程Javascript cross-domain api for your website上利用了一個示例/解決方案。代碼在標準瀏覽器上按預期工作;然而,我堅持與IE7,其中的例子不起作用。跨域javascript <-> php
任何智慧的話(其他然後不使用互聯網爆炸7)?
由於提前, 凱特
-
按epascarello建議我結束了以下(這是一個非常骯髒的測試版本):
從schock.net客戶端的例子:從www.geekality.net
<html>
<script>
function jsonpCallback(data){
alert(data);
}
// Create a new script element
var script_element = document.createElement('script');
// Set its source to the JSONP API
script_element.src = 'http://myserver.com/api.php?callback=jsonpCallback';
// Stick the script element in the page <head>
document.getElementsByTagName('head')[0].appendChild(script_element);
</script>
</html>
服務器端例如:
<?php
header('content-type: application/json; charset=utf-8');
function is_valid_callback($subject)
{
$identifier_syntax = '/^[$_\p{L}][$_\p{L}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\x{200C}\x{200D}]*+$/u';
$reserved_words = array('break', 'do', 'instanceof', 'typeof', 'case',
'else', 'new', 'var', 'catch', 'finally', 'return', 'void', 'continue',
'for', 'switch', 'while', 'debugger', 'function', 'this', 'with',
'default', 'if', 'throw', 'delete', 'in', 'try', 'class', 'enum',
'extends', 'super', 'const', 'export', 'import', 'implements', 'let',
'private', 'public', 'yield', 'interface', 'package', 'protected',
'static', 'null', 'true', 'false');
return preg_match($identifier_syntax, $subject) && !in_array(strtolower($subject), $reserved_words);
}
$data = array(1,2,3,4,5,6,7,8,9);
$json = json_encode($data);
# Verify JSON callback and respond
if (is_valid_callback($_GET['callback']))
exit("{$_GET['callback']}($json)");
# Handle a bad request
header('status: 400 Bad Request', true, 400);
?>
你有什麼錯誤?需要比「不工作」更具體的東西。 – Pitchinnate
「代碼在標準瀏覽器上按預期工作;但是,我堅持使用IE7」---聽起來太熟悉了:) – TheCarver