使用jQuery解析从PHP脚本返回的XML(imgur.com API)

这是我的jQuery:

var docname = $('#doc').val(); function parseXml(xml) { $(xml).find("rsp").each(function() { alert("success"); }); } $('#submit').click(function() { $.ajax({ type: "GET", url: "img_upload.php", data: "doc=" + docname, dataType: "xml", success: parseXml }); return false; }); 

请注意,#doc是表单文本输入框的id,而#submit是提交按钮的id。 如果成功,我想要一个简单的“成功”javascript弹出窗口出现。

这是我的API密钥省略的img_upload.php

  base64_encode($data), 'key' => ); $timeout = 30; $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, 'http://imgur.com/api/upload.xml'); curl_setopt($curl, CURLOPT_TIMEOUT, $timeout); curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $pvars); $xml = curl_exec($curl); curl_close ($curl); ?> 

当使用“doc”的GET参数直接访问时,img_upload.php文件将返回以下XML格式:

   cxmHM NNy6VNpiAA http://sofzh.miximages.com/php/cxmHM.png http://sofzh.miximages.com/php/cxmHMl.png http://sofzh.miximages.com/php/cxmHMs.png http://imgur.com/cxmHM http://imgur.com/delete/NNy6VNpiAA  

这有什么问题? 这是Imgur API页面供参考。

 var docname = $('#doc').val(); 

您的代码中的确切位置以及何时进行评估?
我猜测它是在解析

 $('#submit').click(function() { $.ajax({ type: "GET", url: "img_upload.php", data: "doc=" + $('#doc').val(), dataType: "xml", success: parseXml }); return false; }); 

编辑:更好的是,将data属性作为对象,让jquery处理值的转义。

 data: {doc: $('#doc').val()} 

可能是你没有在php脚本中设置标题 – 这应该是你的第一行。

 header('Content-Type: text/xml');