从字符串的开头和结尾删除单引号
Remove single quotes from beginning and end of string
我正在尝试通过 AJAX.
从原始文本变量和 post 中删除单引号
我在 return 上从 API 端点收到此错误:Invalid document: Content is not allowed in prolog
。
当您的 XML POST 数据前面有 ""
或 ''
时,通常会导致此错误,就像我的情况一样。因此,您所要做的就是使用一些简单的正则表达式和 .trim
或 .replace
.
删除第一个和最后一个 ""
或 ''
无论出于何种原因,它都没有为我删除它。我在网上尝试了无数的正则表达式示例,据说 trim 第一个和最后一个字符,只有第一个和最后一个字符,如果它们是 ""
或 ''
没有任何成功。
代码:
$('#idealMatBtn').click(function (e) {
var xmlSTR = '<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.2.014/cXML.dtd"><cXML timestamp="2015-06-12T08:30:00" xml:lang="en-US"> <Header> <From> <Credential domain="NetworkID"> <Identity>EU019985</Identity> </Credential> </From> <To> <Credential domain="DUNS"> <Identity>Ideal Supply Test</Identity> </Credential> </To> <Sender> <Credential domain="NetworkID"> <Identity>Ideal Supply Test</Identity> <SharedSecret>Ideal</SharedSecret> </Credential> <UserAgent>eProcurement-System 1.0</UserAgent> </Sender> </Header> <Request> <PunchOutSetupRequest operation="create"> <BuyerCookie>[Unique-Generated-Identifier-from-eProcurement-System]</BuyerCookie> <Extrinsic name="FirstName">John</Extrinsic> <Extrinsic name="LastName">Smith</Extrinsic> <Contact role="endUser"> <Name xml:lang="en-US">john</Name> <Email>smith+john@greenwingtechnology.com</Email> </Contact> <BrowserFormPost> <URL>https://test-sys.greenwingtech-system.com/punchout/return</URL> </BrowserFormPost> </PunchOutSetupRequest> </Request></cXML>';
xmlSTR = xmlSTR.toString().replace(/(^"|"$)/g, '');
$.ajax({
type : "POST",
dataType : "xml",
url : "https://postDataToThisURL.do",
data : "xmlSTR",
contentType : "text/xml",
cache : false,
processData : false,
success: function (data) {
if (data) {
url = $(data).find("URL").text();
console.log(data)
console.log(url)
window.open(url, "popupWindow", "width=1000,height=600,scrollbars=yes");
}
else {
// do something
}
}
});
e.preventDefault();
});
删除此行中的引号:
data : "xmlSTR",
...实现:
data : xmlSTR,
按照您的方式,您将 data
值设置为文字字符串 "xmlSTR"
,即字符 x、m、l、S、T、R。您想要将其设置为 变量 xmlSTR
.
我正在尝试通过 AJAX.
从原始文本变量和 post 中删除单引号我在 return 上从 API 端点收到此错误:Invalid document: Content is not allowed in prolog
。
当您的 XML POST 数据前面有 ""
或 ''
时,通常会导致此错误,就像我的情况一样。因此,您所要做的就是使用一些简单的正则表达式和 .trim
或 .replace
.
""
或 ''
无论出于何种原因,它都没有为我删除它。我在网上尝试了无数的正则表达式示例,据说 trim 第一个和最后一个字符,只有第一个和最后一个字符,如果它们是 ""
或 ''
没有任何成功。
代码:
$('#idealMatBtn').click(function (e) {
var xmlSTR = '<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.2.014/cXML.dtd"><cXML timestamp="2015-06-12T08:30:00" xml:lang="en-US"> <Header> <From> <Credential domain="NetworkID"> <Identity>EU019985</Identity> </Credential> </From> <To> <Credential domain="DUNS"> <Identity>Ideal Supply Test</Identity> </Credential> </To> <Sender> <Credential domain="NetworkID"> <Identity>Ideal Supply Test</Identity> <SharedSecret>Ideal</SharedSecret> </Credential> <UserAgent>eProcurement-System 1.0</UserAgent> </Sender> </Header> <Request> <PunchOutSetupRequest operation="create"> <BuyerCookie>[Unique-Generated-Identifier-from-eProcurement-System]</BuyerCookie> <Extrinsic name="FirstName">John</Extrinsic> <Extrinsic name="LastName">Smith</Extrinsic> <Contact role="endUser"> <Name xml:lang="en-US">john</Name> <Email>smith+john@greenwingtechnology.com</Email> </Contact> <BrowserFormPost> <URL>https://test-sys.greenwingtech-system.com/punchout/return</URL> </BrowserFormPost> </PunchOutSetupRequest> </Request></cXML>';
xmlSTR = xmlSTR.toString().replace(/(^"|"$)/g, '');
$.ajax({
type : "POST",
dataType : "xml",
url : "https://postDataToThisURL.do",
data : "xmlSTR",
contentType : "text/xml",
cache : false,
processData : false,
success: function (data) {
if (data) {
url = $(data).find("URL").text();
console.log(data)
console.log(url)
window.open(url, "popupWindow", "width=1000,height=600,scrollbars=yes");
}
else {
// do something
}
}
});
e.preventDefault();
});
删除此行中的引号:
data : "xmlSTR",
...实现:
data : xmlSTR,
按照您的方式,您将 data
值设置为文字字符串 "xmlSTR"
,即字符 x、m、l、S、T、R。您想要将其设置为 变量 xmlSTR
.