我想在javascript中读取URL的内容。该网址不在我的域,所以我需要一个中间层,可以访问跨域。我尝试使用PHP函数读取URL,并使用jquery将结果返回给javascript,但没有成功。
这是我的试验:
我创建了一个名为"phpjs_test.php“的php文件。
<?php
function get_data(){
$url='http://asmary.dreameg.com/texttable.txt';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
$content = curl_exec($ch);
$content = htmlspecialchars($content);
curl_close($ch);
$content = nl2br($content);
return $content;
}
?>这是javascript代码:
<script>
$(document).ready(function () {
//httpQuery("http://asmary.dreameg.com/texttable.txt");
getOutput();
});
function getRequest() {
var req = false;
try {
// most browsers
req = new XMLHttpRequest();
} catch (e) {
// IE
try {
req = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
// try an older version
try {
req = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
return false;
}
}
}
return req;
}
function getOutput() {
var ajax = getRequest();
ajax.onreadystatechange = function() {
if (ajax.readyState == 4) {
document.getElementById('output').innerHTML = ajax.responseText;
}
};
ajax.open("GET", "phpjs_test.php", true);
ajax.send(null);
} 我对PHP完全陌生,所以我甚至不知道PHP函数是否正确。
发布于 2013-02-03 16:30:43
您应该只使用jQuery ajax方法,而不是创建XMLHTTPRequest,您不必为IE添加更多代码,而且您已经加载了jQuery库。另外,如果你在PHP文件中将头文件设置为Allow-Origin-Access,并指定你正在请求的另一个域,那么你可以发出一个AJAX请求并得到响应,否则它将不会返回任何东西,或者在你的开发工具网络选项卡中显示403 -禁止。
发布于 2013-02-03 17:22:54
将PHP文件更改为:
<?php
$url='http://asmary.dreameg.com/texttable.txt';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$content = curl_exec($ch);
curl_close($ch);
$content = explode('~',$content);
foreach($content as $c)
{
$records[] = explode('|',$c);
}
$content = json_encode($records);
echo $content;
?>Javascript将接收如下所示的json数组
[["1","name1","10","city1"],["2","name2","20","city2"],["3","name3","30","city3"],["4","name4","40","city4"],["5","name5","50","city5"],["6","name6","60","city6"],["7","name7","7","city7"],["8","name8","80","city8"],["9","name9","90","city9"],["10","name10","100","city10"],["11","name11","11","city11"],["12","name12","12","city12"],["13","name13","13","city13"],["14","name14","14","city14"],["15","name15","15","city15"],["16","name16","16","city16"],["17","name17","17","city17"],["18","name18","18","city18"],["19","name19","19","city19"],["20","name20","20","city20"],[""]]https://stackoverflow.com/questions/14670567
复制相似问题