XML表达式中的AjaxFileUpload SyntaxError:missing}

Shw*_*nka 7 javascript ajax

我正在尝试使用$ .ajaxFileUpload上传文件.我的服务器脚本返回一个json对象,例如.

{"imgName":"test.jpg","imgUrl":"/ uploadl/images/profile/sam.jpg"}

当我检查Firefox时,它显示正确的响应.Json也被收到了.但我仍然在警报中收到错误:

SyntaxError: missing } in XML expression
Run Code Online (Sandbox Code Playgroud)

我无法理解为什么会出现此错误.同样在firebug Json对象中显示正确.

<script type='text/javascript' src='/js/ajaxfileupload.js'></script>
<script type='text/javascript'>
    function doFileUpload(){
        $("#loading")
        .ajaxStart(function(){
            $(this).show();
        })
        .ajaxComplete(function(){
            $(this).hide();
        });
        $.ajaxFileUpload(
            {
            url:'/json/image/upload.html?action=saveImage&nameSpace=tot',
            secureuri:false,
            fileElementId:'imgFile',
            dataType: 'json',
            success: function (data, status){
                alert("Success: "+data.imgUrl);
                },
            error: function (data, status, e){
                alert("Error: "+e+"---URL: "+data.imgUrl);
                }
            }
        )
    }
</script>
Run Code Online (Sandbox Code Playgroud)

.... ....

<div>
<strong>Upload Images:</strong><br>
<input type='file' name='imgFile' id='imgFile'>&nbsp;&nbsp;
<img src='/images/loading.gif' id='loading' height='60px' width='60px' style='display:none'>
<br><button name='upload' id='upload' onclick='return doFileUpload();'>Upload</button>
</div>
Run Code Online (Sandbox Code Playgroud)

任何人都可以告诉我错误的原因是什么?

Shw*_*nka 7

我终于找到了问题.问题在于我正在使用的Jquery的AjaxFileUpload插件.而不是dataType中的'json',它需要大写.dataType:'JSON'.修复此问题后,它会自动将<pre>和</ pre>添加到收到的json数据的开头和结尾.所以它不是解释ad json.

我收到的实际数据是

<pre>{"imgName": "test.jpg", "imgUrl": "/uploadtest/images/profile/sam.jpg"}</pre>
Run Code Online (Sandbox Code Playgroud)

现在我必须删除那里的标签然后用$ .parseJson()解析它.如果有人有相同的错误,请检查这些问题.我希望很快就会修复ajaxFileUpload插件.