首页 > JS不通过AJAX提交。

JS不通过AJAX提交。

 $(document).ready(function(){
     $("#tijiao").click(function(){

var images = document.getElementsByClassName("c1");
var imageStr = "";
for(var i=0;i<images.length;i++){
   imageStr+=images[i].src+'__';
}

           var imageStr;//你要发送的参数
            $.ajax({
                type:"POST",
                url:"1.PHP",
                data:{
                    IMGSTR:imageStr
                },
              

            });
 });
});

我的数据提交到1.PHP后会自动打包下载。
做了ajax提交图片地址到1.php,发现不会跳出下载框,可能是无刷新提交的原因。
谁帮我改一下?


Ajax提交后, 建议返回不要用print_r, 因为该方法的输出是这种形式

Array
(
    [0] => Array
        (
            [image_src] => http://ddd.d.dd.dasd/1111.xxx
            [image_name] => 711.xxx
        )

    [1] => Array
        (
            [image_src] => http://ddd.d.dd.dasd/2.sss
            [image_name] => 840.sss
        )

    [2] => Array
        (
            [image_src] => http://ddd.d.dd.dasd/3.aaa
            [image_name] => 331.aaa
        )

)
ajax请求是默认的dataType时根据服务器返回的MIME来判定的

dataType

类型:String

预期服务器返回的数据类型。如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息来智能判断,比如 XML MIME 类型就被识别为 XML。在 1.4 中,JSON 就会生成一个 JavaScript 对象,而 script 则会执行这个脚本。随后服务器端返回的数据会根据这个值解析后,传递给回调函数。可用值:

"xml": 返回 XML 文档,可用 jQuery 处理。
"html": 返回纯文本 HTML 信息;包含的 script 标签会在插入 dom 时执行。
"script": 返回纯文本 JavaScript 代码。不会自动缓存结果。除非设置了 "cache" 参数。注意:在远程请求时(不在同一个域下),所有 POST 请求都将转为 GET 请求。(因为将使用 DOM 的 script标签来加载)
"json": 返回 JSON 数据 。
"jsonp": JSONP 格式。使用 JSONP 形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。
"text": 返回纯文本字符串


所以print_r返回的信息浏览器会当成text处理, 建议服务器直接返回json


$imageStrs = $_POST['IMGSTR'];

$image = explode('__', $imageStrs, -1);

foreach($image as $key => $v) {

unset($image[$key]);

$image[$key]['image_src'] = $v;
$v=substr($v,-4);//去除前面
$image[$key]['image_name'] = mt_rand(1, 1111) .$v;
}

echo json_decode($image);//-------------------------
exit;
【热门文章】
【热门文章】