Ich versuche einzelne Zitate aus einer unverarbeiteten Textvariablen zu entfernen und über AJAX zu posten.Entfernen Sie einzelne Anführungszeichen vom Anfang und Ende der Zeichenfolge
Ich bekomme diesen Fehler bei der Rückkehr vom API-Endpunkt:.
Dieser Fehler wird verursacht, wenn Ihren XML-POST-Daten normalerweise ein ""
oder ''
vorangestellt ist, wie es bei mir der Fall ist. Alles, was Sie tun müssen, ist die erste und letzte ""
oder ''
mit einigen einfachen Regex und .trim
oder .replace
zu entfernen.
Aus irgendeinem Grund wird es nicht für mich entfernt. Ich habe unzählige Regex-Beispiele online versucht, die angeblich das erste und letzte Zeichen trimmen, nur das erste und letzte Zeichen, wenn sie ""
oder ''
sind, ohne Erfolg.
Code:
$('#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>[email protected]</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();
});
Im angegebenen Code beginnt Ihre 'xmlSTR' XML-Zeichenkette * nicht * mit einem Anführungszeichen, sie beginnt mit einem' <'und endet mit einem'> '. Sie können etwas, das nicht dort ist, nicht entfernen. – nnnnnn
@nnnnnn Es beginnt mit einem einzigen Zitat? Ist das das Problem? Wenn ich es in reguläres double quote '' 'ändere, bekomme ich' Uncaught SyntaxError: Unexpected number' Fehler. – xGlorify
Dieses einfache Anführungszeichen ist kein Teil der Zeichenkette, es ist Teil der JS String Literal Syntax alle Zeichen zwischen den äußeren Hochkommata schließen diese Anführungszeichen nicht selbst mit ein. So setzt zB 'var x = 'abc' 'x' auf eine Zeichenkette mit drei Zeichen, 'abc'. – nnnnnn