Ты рядом. Вы просто используете обратный вызов success
как обычно (см. ajax
документы), а не специальный:
$.ajax({
url: "http://localhost:3000/application/1/contact_us.json?jsonpcallback=?"+data_string,
dataType: "jsonp",
type : 'post',
processData: false,
crossDomain: true,
contentType: "application/json",
jsonp: false,
success: function(data) {
// Use data here
}
});
Также ваш код:
jsonpresponse: result()
... будет вызывать функцию result
и затем использовать ее возвращаемое значение для свойства jsonpresponse
вызова ajax. Если вы хотите использовать отдельную функцию, это нормально, но вы не включаете ()
, поэтому:
$.ajax({
url: "http://localhost:3000/application/1/contact_us.json?jsonpcallback=?"+data_string,
dataType: "jsonp",
type : 'post',
processData: false,
crossDomain: true,
contentType: "application/json",
jsonp: false,
success: result
});
function result(data) {
// use `data` here
}
Кроме того, я почти уверен, что вам не нужен / не нужен параметр jsonp
, если вы используете success
, поэтому:
$.ajax({
url: "http://localhost:3000/application/1/contact_us.json?jsonpcallback=?"+data_string,
dataType: "jsonp",
type : 'post',
processData: false,
crossDomain: true,
contentType: "application/json",
success: result
});
function result(data) {
// use `data` here
}
Наконец: Вы уверены, хотите установить contentType
? Это относится к контенту, который отправляется на сервер, а не к контенту, полученному с него. Если вы действительно отправляете данные в формате JSON на сервер, отлично, все в порядке; но похоже, что вы используете функцию jQuery serialize
, которая не будет генерировать JSON (она создает строку данных в кодировке URL). Поэтому вы, вероятно, хотите удалить contentType
как из вызова, так и из вызова ajaxSetup
.