我在Java中有这个控制器:
@Controller
public class Controller1 {
//....
@RequestMapping(value = "/demo/web/rest/post/create/bim/project", method = RequestMethod.POST)
public @ResponseBody Long createProject(@ModelAttribute UploadDescriptionFileDemo file, BindingResult result) {
if (file.getName().trim() != "") {
if (result != null)
file.setBindingResult(result);
Long res = createProjectDemoSA.createProject(file);
return res;
} else {
return EMPTY_NAME;
}
}
}
我用这样的ajax称呼它:
$.ajax({
url : url,
cache: false,
contentType: false,
processData: false,
type: "POST",
data : formData,
beforeSend : function(request) {
request.setRequestHeader(token.name, token.value, 'enctype',
'multipart/form-data');
},
success : (res) => {
console.log(res);
},
error: (error) => {
console.log(error);
})
当我用ajax调用这个控制器时,一切正常,我从控制器得到这个响应:
#document
<Long xmlns="">200</Long>
我希望得到“200”的值。
我试图通过在成功部分的ajax中执行此操作来获得此值。
let xmlDoc = $.parseXML(res);
let $xml = $( xmlDoc );
let $title = $xml.find( "Long" );
但我没有得到<Long> </Long>
答案 0 :(得分:0)
摆弄这段代码,
看来你首先需要删除#document
字符串(它是响应的一部分吗?因为ajax
返回字符串除非另有说明),然后你的代码就可以了。
为了将实际200
转换为$title
,您还需要添加:
let $title = $xml.find( "Long" ).text();
如此完整的代码:
let xmlDoc = $.parseXML(res.replace('#document',''));
let $xml = $( xmlDoc );
let $title = $xml.find( "Long" ).text();
这对我来说对这个字符串很有用:
#document
<Long xmlns="">200</Long>