使用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');