Ich versuche, eine Anroid Mobile Application zum Speichern von Daten in einer Remote-SQL-Datenbank zu machen. Ich benutze Cordova Project in Visual Studio 2015. Ich habe einen Webservice, der funktioniert und Name, Telefon & Profilinformationen und Speichern von Daten in SQL Server ordnungsgemäß. Jetzt versuche ich diesen WebService von Android Mobile Application aufzurufen, aber $ Ajax Call to Webservice funktioniert nicht. Die Kontrolle erreicht den Webservice nicht.Speichern von Daten mit Ajax Aufruf an WebService mit Json als Parameter funktioniert nicht In Cordova Project für Android
Ich habe bereits WhiteSpace Plugin hinzugefügt, aber es funktioniert immer noch nicht.
Dies ist die ursprüngliche HTML-Datei per Vorschläge
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *">
<meta name="format-detection" content="telephone=no">
<meta name="msapplication-tap-highlight" content="no">
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">
<script src="../scripts/jquery-3.1.0.min.js"></script>
<script src="../scripts/jquery.mobile-1.4.5.min.js"></script>
<script type="text/javascript" charset="utf-8">
function onLoad() { document.addEventListener("deviceready", onDeviceReady, false); }
function onDeviceReady() { alert("Device is Ready to User"); }
function SaveContact() {
var Contact = new Object();
Contact.Name = "Harvinder";
Contact.Phone = "9819862717";
Contact.Profile = "Director"
var myData = JSON.stringify(Contact);
var myURL = "http://gsecurity.net/JsonDAL.asmx/SaveContact";
alert(typeof (myData));
$.ajax({
type: "POST", url: myURL, data: myData, contentType: "application/json; charset=utf-8", dataType: "json",
success: function (msg) { alert("Success"); },
error: function (e, status) { alert("Failed:" + e.statusText); }
});}
</script>
</head>
<body onload="onLoad()">
<h1>Call Ajax to Save Json Data with WebService</h1>
<button onclick="SaveContact();">Click Here to Save Test Contact</button>
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript" src="scripts/platformOverrides.js"></script>
<script type="text/javascript" src="scripts/appBundle.js"></script>
</body>
</html>
Hier Code der modifiziert ist, die
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src * 'unsafe-inline' 'unsafe-eval'; script-src * 'unsafe-inline' 'unsafe-eval'">
<meta name="format-detection" content="telephone=no">
<meta name="msapplication-tap-highlight" content="no">
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">
<script type="text/javascript" charset="utf-8">
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() { alert("Version 1.10 is Ready"); }
$.support.ajax = true;
$.support.cors = true;
$.mobile.allowCrossDomainPages = true;
function SaveContact() {
var Contact = new Object();
Contact.Name = "Harvinder";
Contact.Phone = "9819862717";
Contact.Profile = "Director";
var myData = JSON.stringify(Contact);
var myURL = "http://gsecurity.net/JsonDAL.asmx/SaveContact";
alert("DataType:" + typeof (myData));
$.ajax({
type: "POST", contentType: "application/json", dataType: "json",
url: myURL, data: myData, allowCrossDomainPages: true,
success: function (msg) { alert("Success"); },
error: function (e, status) { alert("Failed:" + e.statusText); }
});
alert("Completed");
}
</script>
</head>
<body>
<h2>Call Ajax to Save Json Data with WebService</h2>
<button onclick="SaveContact()">Click Here to Save Test Contact</button>
<script type="text/javascript" src="../scripts/jquery-3.1.0.min.js"></script>
<script type="text/javascript" src="../scripts/jquery.mobile-1.4.5.min.js"></script>
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript" src="scripts/platformOverrides.js"></script>
<script type="text/javascript" src="scripts/appBundle.js"></script>
</body>
</html>
noch nicht funktioniert ist
My Webservice ist hier das funktioniert prima, wenn sie direkt per URL zugegriffen
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.ComponentModel
Imports System.Data
Imports System.Data.SqlClient
<System.Web.Script.Services.ScriptService()>
<System.Web.Services.WebService(Namespace:="http://tempuri.org/")>
<System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)>
<ToolboxItem(False)>
Public Class JsonDAL
Inherits System.Web.Services.WebService
<WebMethod>
Public Function SaveContact(Name As String, Phone As String, Profile As String) As String
Try
Dim ConStr = ConfigurationManager.ConnectionStrings("Data").ConnectionString
Dim Con = New SqlConnection(ConStr)
Dim Qry = "INSERT INTO Contacts (Name,Phone,Profile) VALUES ('" + Name + "','" + Phone + "','" + Profile + "')"
Dim Cmd = New SqlCommand(Qry, Con)
Cmd.CommandType = CommandType.Text
Con.Open()
Cmd.ExecuteNonQuery()
Con.Close()
Return "Done"
Catch ex As Exception
Return ex.Message
End Try
End Function
End Class
Vielen Dank für Ihre Response.I Code kopiert, wie es ist aber es funktioniert immer noch nicht. Ich habe .apk in meinem Android Phone installiert, aber es geht nicht über den Zeilenalarm hinaus (typeof (myData)). Ich habe einen Datensatz TestFromHomen in der Datenbank hinzugefügt. Wenn ich den Code über den angegebenen Code riss, wurde der Fehler ausgegeben. "Message": "Uncaught ReferenceError: $ ist nicht definiert", "Dateiname": "http://stacksnippets.net/js", "lineno": 33, "colno": 17 } – Saimbhi
Sind jquery und jqury mobile js-Datei im Ordner scripts? – Homen
Ja beide .js Dateien sind da. Derselbe Code funktioniert im normalen asp.net-Projekt, funktioniert aber nicht im Cordova-Projekt. Das bedeutet, dass Code und Webservice perfekt sind. Ich denke, irgendwo stimmt etwas nicht, was die Android-App daran hindert, auf eine externe URL zuzugreifen. Ich habe auch das Meta-Tag geändert, aber es funktioniert immer noch nicht. – Saimbhi