Иногда сообщение с jquery до springmvc доходит не полностью

 
 
 
Сообщения:179
Всем привет! Столкнулся с такой проблемой, у некоторых клиентов иногда сообщение с jquery до springmvc доходит не полностью.
Пример кода:
На стороне клиента:
var adSettingsJSON = JSON.stringify({ odc: {fullTitle: generateAdFullTitle, fullText:generateAdFullText,
            titleOffer : generateAdTitleOffer, titleOfferShort : generateAdShortTitleOffer, titleOfferDoubleShort : generateAdDoubleShortTitleOffer,
            adTitle56LettersOffer : generateAdTitle56LettersOffer , adDoubleShortText56LettersOffer : generateAdDoubleShortText56LettersOffer ,
            adShortTitle56LettersOffer : generateAdShortTitle56LettersOffer , adShortText56LettersOffer : generateAdShortText56LettersOffer ,
            adDoubleShortTitle56LettersOffer : generateAdDoubleShortTitle56LettersOffer , adText56LettersOffer : generateAdText56LettersOffer ,
            offers : [generateAdShortTOffer1,generateAdShortTOffer2,generateAdShortTOffer3],
            deadline : generateAdDeadline, callToAction : generateAdCallToAction, concurents : $('#generateAdConcurents').val().split('\n'),
            replaceTitleOffers : replaceTitleOffersArr, replaceTextOffers : replaceTextOffersArr, replaceNURLs : replaceNURLsArr},
            link : generateAdLink, region : generateAdRegion, price : generateAdPrice, speedNameLinks : speedLinksArr});


        $.ajax({
            type: "POST",
            dataType: "HTML",
            response:'text',
            data: "companyName=" + companyName + "&textarea=" + textarea + "&crossMinus=" + crossMinus + "&ad56Letters=" + ad56Letters +
            "&ad56LettersPretexAddition=" + ad56LettersPretexAddition + "&keyInSpeedLinks=" + keyInSpeedLinks +
            "&onlyWithSpace=" + onlyWithSpace + "&useKeyTitle=" + useKeyTitle + "&useKeyText=" + useKeyText +
            "&quotingPhrase=" + quotingPhrase + "&quotingPhraseIfLimitMinusWords=" + quotingPhraseIfLimitMinusWords +
            "&requeredOffer1=" + requeredOffer1 + "&requeredOffer2=" + requeredOffer2 + "&requeredOffer3=" + requeredOffer3 +
            "&adSettingsJSON=" + adSettingsJSON + "&titleExclamationMark=" + titleExclamationMark + "&titleQuestion=" + titleQuestion ,
            url: "generateAd.htm",
            success: function(data) {


На стороне сервера:
@RequestMapping(value ="/generateAd.htm" ,method = RequestMethod.POST)
	@ResponseBody
	public ResponseEntity<String> generateAdRequest( HttpSession session, HttpServletRequest request ,HttpServletResponse response)  {

		String companyName = (String) request.getParameter("companyName");
		String textarea = (String) request.getParameter("textarea");
		String crossMinus = (String) request.getParameter("crossMinus");
		String ad56Letters = (String) request.getParameter("ad56Letters");
		String ad56LettersPretexAddition = (String) request.getParameter("ad56LettersPretexAddition");
		String keyInSpeedLinks = (String) request.getParameter("keyInSpeedLinks");
		String onlyWithSpace = (String) request.getParameter("onlyWithSpace");
		String useKeyTitle = (String) request.getParameter("useKeyTitle");
		String useKeyText = (String) request.getParameter("useKeyText");
		String quotingPhrase = (String) request.getParameter("quotingPhrase");
		String quotingPhraseIfLimitMinusWords = (String) request.getParameter("quotingPhraseIfLimitMinusWords");
		String titleExclamationMark = (String) request.getParameter("titleExclamationMark");
		String titleQuestion = (String) request.getParameter("titleQuestion");
		String requeredOffer1 = (String) request.getParameter("requeredOffer1");
		String requeredOffer2 = (String) request.getParameter("requeredOffer2");
		String requeredOffer3 = (String) request.getParameter("requeredOffer3");
		String adSettingsJSON = (String) request.getParameter("adSettingsJSON");
 
		log.info("adSettingsJSON1=" + adSettingsJSON);
		adSettingsJSON = adSettingsJSON.replaceAll("//","__").replaceAll("/","").replaceAll("__","//");
		log.info("adSettingsJSON2=" + adSettingsJSON);

       AdSettings adSettings = null;
		try {
			adSettings = new ObjectMapper().readValue(adSettingsJSON, AdSettings.class);


Логи:
2016-12-30 14:02:20,249 INFO [WelcomeController] adSettingsJSON1={"odc":{"fullTitle":"","fullText":"","titleOffer":"","titleOfferShort":"500 руб/м2","titleOfferDoubleShort":"Акция! ","adTitle56LettersOffer":"","adDoubleShortText56LettersOffer":"","adShortTitle56LettersOffer":"","adShortText56LettersOffer":"","adDoubleShortTitle56LettersOffer":"","adText56LettersOffer":"","offers":["Монтаж видеонаблюдения в подарок!","Монтаж охранной системы в подарок!","Монтаж заземления в подарок!"],"deadline":"До 31 января!","callToAction":"Жми!","concurents":[""],"replaceTitleOffers":[],"replaceTextOffers":[],"replaceNURLs":[]},"link":"http://msk-electrik.ru/dom","region":"Москва","price":"50","speedNameLinks":[{"speedNameLink":"Русские мастера","speedLink":"msk-electrik.ru/dom/#all-incl-bl/?utm_source=yandex.{source_type}
2016-12-30 14:02:20,249 INFO [WelcomeController] adSettingsJSON2={"odc":{"fullTitle":"","fullText":"","titleOffer":"","titleOfferShort":"500 рубм2","titleOfferDoubleShort":"Акция! ","adTitle56LettersOffer":"","adDoubleShortText56LettersOffer":"","adShortTitle56LettersOffer":"","adShortText56LettersOffer":"","adDoubleShortTitle56LettersOffer":"","adText56LettersOffer":"","offers":["Монтаж видеонаблюдения в подарок!","Монтаж охранной системы в подарок!","Монтаж заземления в подарок!"],"deadline":"До 31 января!","callToAction":"Жми!","concurents":[""],"replaceTitleOffers":[],"replaceTextOffers":[],"replaceNURLs":[]},"link":"http://msk-electrik.rudom","region":"Москва","price":"50","speedNameLinks":[{"speedNameLink":"Русские мастера","speedLink":"msk-electrik.rudom#all-incl-bl?utm_source=yandex.{source_type}

2016-12-30 14:02:20,424 ERROR [WelcomeController] Unexpected end-of-input: was expecting closing quote for a string value
at [Source: [email protected]; line: 1, column: 1501]
org.codehaus.jackson.JsonParseException: Unexpected end-of-input: was expecting closing quote for a string value
at [Source: [email protected]; line: 1, column: 1501]
at org.codehaus.jackson.JsonParser._constructError(JsonParser.java:1433)



Т.е. parametr adSettingsJSON иногда у некоторых клиентов доходит не полностью. Как думаете, в чем может быть причина?
Сломал уже себе голову
Изменен:30 дек 2016 23:02
 
 
Сообщения:142
Вероятно, JSON.stringify не ожидает управляющих символов JSON в данных ({source_type}). Кодируй ссылки.

 
 
Сообщения:179
Проблема в том, что у меня с такими параметрами работает, а у клиента нет( Причем только у некоторых не работает.
 
 
Сообщения:179
wind:
Вероятно, JSON.stringify не ожидает управляющих символов JSON в данных ({source_type}). Кодируй ссылки.

А как их кодировать? Что просто имеете в виду? Может поможет
 
 
Сообщения:142
http://www.w3schools.com/tags/ref_urlencode.asp

 
 
Сообщения:179
Да, спасибо. Помогло. Так же сделал это:
var generateAdLink = encodeURI($.trim($('#generateAdLink').val())).replace(/&/g,'|||');

Т.е. была ошибка в распознавании '&'. И заменил этот символ на другой
 
Модераторы:Нет
Сейчас эту тему просматривают:Нет