Polat Aydın
Polat Aydın

Reputation: 87

PhoneGap WcfService

I have a wcf service calling from mobile platfrom. When i call wcf from browser in mobile device it works.Then i convert my html to an application using phone. But this time , i can not call the wcf service. Any ideas? Here is my html ;

<title>Mobilizm</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link href="css/Mobilizm.css" rel="stylesheet" />
    <link href="css/jquery.mobile.structure-1.3.2.min.css" rel="stylesheet" />

     <script src="js/JSON.js"></script>
    <script src="js/jquery.js"></script>
    <script src="js/jquery.mobile-1.3.2.js"></script>  
    <script>
        $(document).on("pageinit", function (event) {

            $('#save').click(function () {
                debugger;
                var typesArray = new Array();
                var myType = new Object();
                myType.FirstName = $("#name").val();
                myType.LastName = $("#surname").val();
                myType.EMailAddress1 = $("#email").val();
                myType.MobilePhone = $("#cellphone").val();
                typesArray.push(myType);

                $.support.cors = true;
                $.getJSON("http://xxxxx/Mobile/MobilizmService.svc/CreateCustomer?callback=?", { customers: JSON.stringify(typesArray), origin: 167440003, status: 167440001 })
                .done(function (json) {
                    alert("ok");
                })
                .fail(function (jqxhr, textStatus, error) {
                    alert("false");
                });

    </script>

</head>
<body>
    <div data-role="page">
        <div data-theme="d" data-role="header">
            <h3>Yeni Kullanıcıgg</h3>
        </div>
        <div  data-role="content">

            <div data-role="fieldcontain">
                <label for="name">Ad:</label>
                <input type="text" name="name" id="name" value="" data-mini="true" />
            </div>

            <div data-role="fieldcontain">
                <label for="surname">Soyadı:</label>
                <input type="text" name="surname" id="surname" value="" data-mini="true" />
            </div>
            <div data-role="fieldcontain">
                <label for="email">E-Posta:</label>
                <input type="text" name="email" id="email" value="" data-mini="true" />
            </div>
            <div data-role="fieldcontain">
                <label for="cellphone">Cep Telefonu:</label>
                <input type="text" name="cellphone" id="cellphone" value="" data-mini="true" />
            </div>

            <input data-theme="d" type="button" value="Kaydet" id="save" />

        </div>
        <div data-theme="d" data-role="footer">
            <h3>Yeni Kullanıcı</h3>
        </div>
    </div>

Upvotes: 1

Views: 148

Answers (2)

Polat Aydın
Polat Aydın

Reputation: 87

After several hours searching , ı solved the problem. You have to add this tag to your config.xml file. Your origin is where you host your webservice.

<access origin="xxx" subdomains="true" />

Upvotes: 1

Liran Brimer
Liran Brimer

Reputation: 3556

Try my code:

var serviceUrl = 'http://' + _SERVER_ADDRESS + '/RestService.svc/' + method;
var jsonCallbackMethod = 'spycallback493285721';

$.ajax({
    type : "GET",
    url : serviceUrl,
    jsonpCallback : jsonCallbackMethod,
    data : params,
    dataType : 'jsonp',
    timeout : 11*1000 // Necessary in order to detect not found(404) error
})

Upvotes: 0

Related Questions