Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   JSON-->redirect (https://javascript.ru/forum/misc/68937-json-redirect.html)

SkyNetYar 18.05.2017 16:06

JSON-->redirect
 
Приветствую!
Помогите советом
REST API возвращает JSON некоторые параметры таким макаром


{'error':'201','ID':'18202','error_message':'Лид добавлен','AUTH':'11bc63a3a64d79dbdcd5cf8e389526c'}



Где 'ID':'18202' это и есть id этого самого нового лида....

Открыть его можно было таким образом
url: this.config.bitrix_domain + "/crm/lead/edit/18202/"

Но как получить этот json преобразовать и сразу сделать редирект на этот лид я не могу, не хватает опыта (

Nexus 18.05.2017 16:35

SkyNetYar, очень вряд ли это то, что тебе нужно:

var response="{'error':'201','ID':'18202','error_message':'Лид добавлен','AUTH':'11bc63a3a64d79dbdcd5cf8e389526c'}";
try{
	response=JSON.parse(response);
	window.location.href=this.config.bitrix_domain+'/crm/lead/edit/'+response.ID+'/';

} catch(e){
	if(!!window.console && !!console.error)
		console.error(e);
	
	alert('Произошла ошибка');
}

SkyNetYar 18.05.2017 16:43

Похоже на правду! но вот как это использовать,мой код такой..

t.prototype.makeNotFoundCallButtons = function () {
					var t,
					e;
					return t = [],
					e = "phone=" + encodeURIComponent(this.call.entityPhone),
					e += "&title=" + encodeURIComponent(this.call.source) + " " + "(" + encodeURIComponent(this.call.entityPhone) + ")",
					e += "&address=" + encodeURIComponent(this.call.source),
					t.push({
						title: "Создать контакт",
						url: this.config.bitrix_domain + "/crm/contact/edit/0/?" + e
					}),
					t.push({
						title: "Создать лид",
						url: this.config.bitrix_domain + "/crm/lead/edit/0/?" + e
					}),
					t.push({
						title: "Записать лид",
						url: this.config.bitrix_domain + "/crm/configs/import/lead.php?LOGIN=admin&PASSWORD=qwerty&TITLE="+ encodeURIComponent(this.call.source) + " " + "(" + encodeURIComponent(this.call.entityPhone) + ")"+"&PHONE_WORK="+ encodeURIComponent(this.call.entityPhone)+"&SOURCE_ID="+ encodeURIComponent(this.call.source) +""
					}), 
					t.push({
						title: "Создать компанию",
						url: this.config.bitrix_domain + "/crm/company/edit/0/?" + e
					}),
					t
				},


Вот когда нажимаю на кнопку срабатывает вот эта часть
t.push({
						title: "Записать лид"
url: this.config.bitrix_domain + "/crm/configs/import/lead.php?LOGIN=admin&PASSWORD=qwerty&TITLE="+ encodeURIComponent(this.call.source) + " " + "(" + encodeURIComponent(this.call.entityPhone) + ")"+"&PHONE_WORK="+ encodeURIComponent(this.call.entityPhone)+"&SOURCE_ID="+ encodeURIComponent(this.call.source) +""


Как приспособить?
Именно вот это this.config.bitrix_domain + "/crm/configs/import/lead.php? идет обращение к REST API и тот возвращает то что выше писал..

Nexus 18.05.2017 16:57

SkyNetYar, если это официальное SDK, то смотри в документации как к "кнопке" (элементу управления) присобачить callback-функцию.

Код, который ты привел бесполезен, т.к. в нем ничего нет, кроме заполнения массива «t».
Причем заполнения происходит в, по-моему, убогой форме. Хотя чего еще от битрикса ожидать?

SkyNetYar 19.05.2017 16:36

Мне надо что то типа
var res = JSON.parse(); из {'error':'201',''ID':'18117,'error_message':'Ли� � добавлен','AUTH':'f5e7f34d3b78f1964cb452cf 835c40e'}
затем перекидывать на что то типа
url: this.config.bitrix_domain + "/crm/lead/edit/" + res.ID

Помогите обернуть правильно пожалуйста!

То что Вы предложили самое оно вроде бы как но как считывать этот самый var response=""; ?

Nexus 19.05.2017 22:56

SkyNetYar, данных для выполнения твой просьбы недостаточно.
Как я писал ранее, участок кода, что ты привел бесполезен.

SkyNetYar 22.05.2017 11:20

Могу ли я Вам все расширение скинуть? поможете?

SkyNetYar 23.05.2017 10:38

var response="как тут указать ответ API битрикса?"
Вот пока с этим не могу справится, как отловить то этот ответ и указать его?
Он просто выводит а белой странице

{
'error':'201',
'ID':'18202',
'error_message':'Лид добавлен',
'AUTH':'11bc63a3a64d79dbdcd5cf8e389526c'
}

Мне нужно вот это 'ID':'18202', это значение каждый раз разное соответственно...


Часовой пояс GMT +3, время: 20:49.