【问题标题】:How can i post combined variable and xml data using jquery ajax for webservice我如何使用 jquery ajax 为 web 服务发布组合变量和 xml 数据
【发布时间】:2016-02-08 09:09:35
【问题描述】:

我是 ajax、xml 和 Web 服务的新手。 我想发布 http 请求以调用具有以下格式的一些变量值和 xml 数据的 web 服务:

x=sender&b=receiver&xmlinput=<request><data1>100</data1><data2>200</data2></request>

这是我的 ajax 代码:

//These are the parameters      
var a = 'sender';       
var b = 'receiver';
var xmlinput = '<request><data1>$('#inputData1').val()</data1><data2>$('#inputData2').val()</data2>';       
$.ajax({
    url: 'webService.php',
    type: "POST",   
    async: true,
    data:  "a&b&xml" , 
    dataType: 'xml',
    contentType: "text/xml",
    success: function(xmlData){             

    },                      
    error: function(jqXHR, textStatus, errorThrown) {
       console.log(textStatus, errorThrown);
    }
});

请帮我这样做。谢谢。

【问题讨论】:

  • 将 GET 部分放在 URL 的末尾,数据应该是 XML 输入。
  • 检查字符串连接在 JS 中是如何工作的,并使用上面的注释。
  • 谢谢@Brainfeeder 你是说这个url: 'webService.php/GET' 吗?如果数据`数据:“xml”`而不是data: "a&amp;b&amp;xml",那么其他变量ab怎么样。谢谢
  • @user5005768 完全正确:)

标签: jquery ajax xml web-services


【解决方案1】:

您需要研究几件事。在 JavaScript 中,使用 + 运算符来连接字符串,contentType: "text/xml" 表示 JavaScript 需要 XML 格式的 data 值。
注意:与 PHP 不同,在单引号字符串中使用变量名不会由javascript处理。它被视为一个简单的字符串。

var a = 'sender';       
var b = 'receiver';
var xmlinput = '<request><data1>' + $('#inputData1').val() + '</data1><data2>' + $('#inputData2').val() + '</data2>';       
$.ajax({
    url: 'webService.php' ,
    type: "GET",   
    async: true,
    data: {
        xml : xmlinput,
        a: a,
        b: b
    }, 
    dataType: 'xml',
    contentType: "text/xml",
    success: function(xmlData){             

    },                      
    error: function(jqXHR, textStatus, errorThrown) {
       console.log(textStatus, errorThrown);
    }
});

【讨论】:

  • 感谢@Rejith R Krishnan。在发送到 webservice 之前,有什么方法可以查看或打印最终格式化数据x=sender&amp;b=receiver&amp;xmlinput=&lt;request&gt;&lt;data1&gt;100&lt;/data1&gt;&lt;data2&gt;200&lt;/data2&gt;&lt;/request&gt;。这将有助于了解正确的格式。谢谢
  • @user5005768 :在这种情况下,将type: "POST"改为type: "GET"
  • 你好@Rejith R Krishnan。这个代码是x=' + a + '&amp;b=' + b还是这个a=' + a + '&amp;b=' + b。还有为什么你不发送数据部分。这个数据部分会自动通过 ajax 连接吗?谢谢
  • @user5005768 :我进行了更新。有一个错误。使用新代码,您将获得如下内容。 webService.php?xml=%3Crequest%3E%3Cdata1%3E%23inputData1%3C%2Fdata1%3E%3Cdata2%3E%23inputData2%3C%2Fdata2%3E&amp;a=sender&amp;b=reciever,就是你的xml和其他数据的url编码值,
猜你喜欢
  • 2011-10-30
  • 1970-01-01
  • 1970-01-01
  • 2011-03-07
  • 1970-01-01
  • 2018-04-27
  • 2015-09-12
  • 1970-01-01
  • 2021-09-15
相关资源
最近更新 更多