通过Ajax发送字符串将空间编码为+

时间:2018-01-18 12:53:32

标签: javascript ajax

我想将数据发送到相机,它只接受没有编码的数据。

数据应该是

<?xml version="1.0" encoding="UTF-8"?>
<EventTriggerList version="2.0">
...
</EventTriggerList>

我有一个创建该字符串的函数,当我通过应用程序使用它发送到相机时,它可以工作。但是当我使用Ajax时:

    $.ajax({
        url: target,
        type: 'PUT',   //type is any HTTP method
        contentType: "application/xml",
        data: {
            data: dataString
        },
        success: function () {
        }
    })
    ;

它将上面的内容发送为

<?xml+version="1.0"+encoding="UTF-8"?>
<EventTriggerList+version="2.0">
...
</EventTriggerList>

并且相机不接受它。 我尝试将processData设置为false,但后来我的有效负载只有15个字节,而不是预期的300个字节的字符串。

如何让有效负载与我生成的字符串完全相同?

1 个答案:

答案 0 :(得分:1)

由于您的内容类型是xml而dataString也是xml,因此只需按原样传递

$.ajax({
    url: target,
    type: 'PUT',   //type is any HTTP method
    contentType: "application/xml",
    data: dataString,
    success: function () {
    }
})