如果json_decode返回数组失败的话, 只能说明, json数据不合乎语法!
通许网站建设公司创新互联,通许网站设计制作,有大型网站制作公司丰富经验。已为通许上千提供企业网站建设服务。企业网站搭建\外贸营销网站建设要多少钱,请找那个售后服务好的通许做网站的公司定做!
-
//采集的信息需要先登录的就要先模拟登录
//设置cookie保存路径
$ch = curl_init();
//组装用户名和密码
$info['username'] = $this-username;
$info['password'] = $this-pwd;
//模拟表单提交
$params[CURLOPT_URL] = $this-url; //请求url地址
$params[CURLOPT_HEADER] = true; //是否返回响应头信息
$params[CURLOPT_RETURNTRANSFER] = true; //是否将结果返回
$params[CURLOPT_FOLLOWLOCATION] = true; //是否重定向
// $params[CURLOPT_SSL_VERIFYPEER] = true; // https请求 不验证证书和hosts
// $params[CURLOPT_SSL_VERIFYHOST] = true; // https请求 不验证证书和hosts
$params[CURLOPT_USERAGENT] = 'Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1';
$postfields = '';
//将表单要提交的数据编程URL拼接方式
foreach ($info as $key = $value){
$postfields .= urlencode($key) . '=' . urlencode($value) . '';
}
$params[CURLOPT_POST] = true;
$params[CURLOPT_POSTFIELDS] = $postfields;
//判断是否有cookie,有的话直接使用
/*
if (isset($_COOKIE['cookie_jar'])($_COOKIE['cookie_jar']||is_file($_COOKIE['cookie_jar']))){
$params[CURLOPT_COOKIEFILE] = $_COOKIE['cookie_jar']; //这里判断cookie
}else{
$cookie_jar = tempnam($this-cookie_path, 'cookie'); //产生一个cookie文件
$params[CURLOPT_COOKIEJAR] = $cookie_jar; //写入cookie信息
setcookie('cookie_jar', $cookie_jar); //保存cookie路径
}
*/
curl_setopt_array($ch, $params); //传入curl参数
$content = curl_exec($ch); //执行
$(document).ready(function(){$("#enter").click(function(){vartheuser=$("#theuser").val();if(theuser==''){alert("用户名不能为空");returnfalse;}$.post('json.php',{'user':theuser},function(data){if(data.user!=""){$("#look").html(data.user);}else{//错误处理}});});});类似吧,没大看明白你的要求.其实最好在php端输出json的时候,加上些状态字段,例如:$result=array('asd','34234');//这是你想要的数据if($result){echojson_encode(array('code'=1,'data'=$result));}else{echojson_encode(array('code'=0,'data'=null));}这样在前端的时候容易判断些,直接根据code的状态判断请求的结果.w3school.com.cn/jquery/ajax_post.asp"target="_blank".cn/jquery/ajax_post.asp
$.post是提供简单的封装的ajax post请求的方法,没办法进行更详细的配置。
改为使用$.ajax把,里面有一个参数可以配置超时时间
如
$.ajax({
url:"xxx.php",
type:"POST",
dataType:"json",
timeout:60000, //超时时间,现在设置为60s。
success:function(data){
console.log(data);
}
});
更详细的配置可以查看jQuery的API文档。
另外需要你的服务器端配置的超时时间不能小于jQuery里面配置的。要不然jQuery还没有超时,服务器端直接返回timeout了。
同时优化一下服务端的处理,提高相应速度也是一个不错的选择。