I d' like to send an ajax request on a website but I have a strange result:
$.ajax({
type: 'GET',
url: 'http://mydomain.com/test.json',
success: function(data){
console.log(data);
alert('Ok');
},
error: function(data){
console.log(data.responseText);
alert('FAIL !!!');
}
});
test.json is
{
ttt: 1,
ttt: 3,
test:{
aa: 1,
bb: 2
}
}
So I have the alert fail but im my console.log I have the content of my json file
Why the error return a result ??
Thanks
Try this sample:
$.ajax({
type: 'GET',
url: 'http://mydomain.com/test.json'}),
success: function(data){
console.log(data);
alert('Ok');
}),
error: function(jqXHR, textStatus, errorThrown){
console.log(textStatus);
alert('FAIL !!!');
},
});
Related
Ajax request not sending on android studio with cordova. I tried a simple request to google but it does not work either.
What i already tried :
- Change minSdk to 23
- Add cordova whitelist plugin and permissions for https and http in config.xml
- add android:usesCleartextTraffic="true" in AndroidManifest
- i have nothing in my network profiler but ajax return a timeout error
- Outside my app, my request work
Code
$.ajax({
type: "POST",
url: OAUTH2_URL,
cache : false,
beforeSend: function (xhr) {
xhr.setRequestHeader('Authorization', make_base_auth($("#login").val(), $("#pwd").val()));
},
dataType: 'json',
contentType: 'application/json; charset=UTF-8',
data: json,
timeout: 5000,
success: function (data) {
etape3(data);
},
error: function (xhr, ajaxOptions, thrownError){
SpinnerPlugin.activityStop();
navigator.notification.confirm(
'login or password incorrect.', // message
null, // callback
'Error', // title
['Ok'] // buttonName
);
}
})
I don't know what else to do
Thanks !
"it always alert failure but in case of browser its working fine nor its send data to ajax url "
jQuery.ajax({
url:'http://182.18.164.87/jd/action.php?action=register',
crossDomain: true,
type: 'POST',
data: data,
contentType: "application/json",
dataType: 'jsonp',
jsonp: 'jsoncallback',
timeout: 5000,
success: function(data,status){
alert('success');
localStorage.clear();
return true;
},
error: function(){
alert('failure')
return false;
}
});
try like this :
$.ajax({
type: "POST",
url: "http://182.18.164.87/jd/action.php",
data: {"data":val},
cache: false,
async:false,
success: function(data){
var data = JSON.parse(data);
alert('success');
localStorage.clear();
},
error: function(){
alert('failure')
return false;
}
});
You have to whitelist the URL host (i.e. http://182.18.164.87/) in your config.xml, otherwise it will be blocked for security reason:
<access origin="http://182.18.164.87" />
You will need the whitelist plugin too.
The JSON didn't give correct result(issuccess:failed) on AJAX while it give correct result in postman(issuccess:true)
The JSON response in AJAX
and
The JSON result in postman
var jData = {};
jData.username = $scope.mobile;
jData.password = $scope.password;
jData.entrytoken="aaad1323dfd";
var $resData = null;
$.ajax({
url:url,
type: "POST",
ContentType: "application/json; charset=utf-8",
data:JSON.stringify(jData) ,
dataType: "json",
beforeSend: function () {
},
success: function (response) {
console.log(response);
},
error: function (jqXHR, textStatus, errorThrown) {
},
complete: function () {
}
});
I am a newbie to phonegap. I m stuck. I m unable to get result while calling webservice in phone gap. I used both Ajax and getJSON Method. Getting result as undefined, RealData variable as undefined. I am feeling that I am missing something. Please help guys.
Here is my code....
function onDeviceReady() {
console.log("Device is Ready111111");
alert("alert Device ready");
/*var jqxhr = $
.getJSON(
'http://www.infoline.in/mobdata.aspx?
reqfor=area_list&city=ahmedabad',
function() {
console.log("Device is Ready111111....."+jqxhr);
alert('success');
}).error(function() {
alert('error');
});*/
$(document).ready(function () {
$.ajax({
url: "http://www.infoline.in/mobdata.aspx",
data: {
"reqfor": "area_list",
"city": "ahmedabad"
},
crossDomain: true,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg, textStatus, jqXHR) {
alert(textStatus);
var theRealData = msg.d;
alert(theRealData.length)
}
});
});
In order to view the Object you have to convert the msg into a string.
try this:
console.log(JSON.stringify(msg));
I trying consume service with phonegap and android.
My service using localhost return the json with chrome:
{
"GetListaMunicipiosResult": [{
"MunicipioID": "1",
"MunicipioNome": "Florianópolis",
"MunicipioUf":"SC"
}, {
"MunicipioID": "2",
"MunicipioNome": "Jaraguá do Sul",
"MunicipioUf": "SC"
}]
}
In my .js file, I call the GET json with the code:
$('#cidades_page').live('pageshow',function(event){
$.ajax("http://10.0.2.2:56976/MunicipiosService.svc/ListaMunicipios",{
beforeSend: function (xhr) {
$.mobile.showPageLoadingMsg();
alert("beforeSend");
},
complete: function () {
// $.mobile.hidePageLoadingMsg();
alert("complete");
},
contentType: "application/json",
dataType: "jsonp",
jsonp: "callback",
type: "GET",
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(xhr.responseText);
//alert(thrownError);
},
success: function (data) {
alert(JSON.stringify(data));
}
});
});
But when page show, only alert alert("beforeSend") fired, and after nothing happens.
I insert the json call in html using $.ajax(.... and open with chrome and its work. I do not know what else to do.
thanks for help
EDIT
I test in windows phone and now i can get error Error:GetListaMunicipios was not called.
My .js:
$.ajax("http://localhost:56976/MunicipiosService.svc/ListaMunicipios?callback=?",{
beforeSend: function (xhr) {
// $.mobile.showPageLoadingMsg();
alert('beforeSend');
},
complete: function () {
// $.mobile.hidePageLoadingMsg();
alert('complete');
},
contentType: 'application/json; charset=utf-8',
dataType: 'jsonp',
crossDomain: true,
jsonp: 'callback',
jsonpCallback:'GetListaMunicipios',
type: 'GET',
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(xhr.responseText);
alert(thrownError);
},
success: function (data) {
alert('success');
}
});
My WCF Service
namespace GuiaService
{
[ServiceContract]
public interface IMunicipiosService
{
[OperationContract]
[WebInvoke(Method = "GET",
ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Wrapped,
UriTemplate = "ListaMunicipios")]
List<ClsListaMunicipios> GetListaMunicipios();
}
}
thanks for help.
You should use done, fail and always.
success, error and complete are deprecated.
Update: as noted in the comments, this isn't true for how you're using it. I now believe the problem is because you're using jsonp as the type instead of json.
jsonp is designed to call a function automatically when loaded, so your server should be adding a function call to the generated code. It's possible that jQuery expects this behaviour and disables its own callbacks, or uses the jsonp mechanism to trigger its own callbacks, but since your server doesn't actually add the function call, nothing happens.